js 调用oc——webView


//  shangCheng.h


#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import "platform/ios/CCEAGLView-ios.h"
@interface  shangCheng : NSObject<UIWebViewDelegate>{

}
@property(nonatomic,retain)CCEAGLView * MyEaglView;
@property(nonatomic,retain)UIWebView * MyWebView;
@property(nonatomic,retain)UIActivityIndicatorView * MyActivity;


+(shangCheng *)deDaoEaglView : (CCEAGLView *)egvl;
+(BOOL)CreatShangChengWebViewWithURL : (NSString *)SHOPURL;
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
- (void)webViewDidStartLoad:(UIWebView *)webView;
- (void)webViewDidFinishLoad:(UIWebView *)webView;
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
@end
</pre><pre name="code" class="objc">







//  shangCheng.m


#import "shangCheng.h"

@implementation shangCheng

static shangCheng * AshangCheng = nil;

+(shangCheng *)deDaoEaglView : (CCEAGLView *)egvl
{
    if (!AshangCheng) {
        AshangCheng = [shangCheng new];
        AshangCheng.MyEaglView = egvl;
        UIActivityIndicatorView * activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
        activity.color = [UIColor redColor];
        AshangCheng.MyActivity = activity;

        return AshangCheng;
          }else{
        return AshangCheng;
          };
}

+(BOOL)CreatShangChengWebViewWithURL : (NSString *)SHOPURL{
    shangCheng * shang = [shangCheng deDaoEaglView:nil];
    CCEAGLView * egvl = shang.MyEaglView;
    
    UIWebView * webView = [[UIWebView alloc] initWithFrame:egvl.bounds];
    shang.MyWebView = webView;
    webView.delegate = AshangCheng;
    NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:SHOPURL]];
    [egvl addSubview: webView];
    [webView loadRequest:request];
    
    CGRect rx =[UIScreen mainScreen].bounds;
    shang.MyActivity.center = CGPointMake(rx.size.width/2, rx.size.height/2);
    [egvl addSubview:shang.MyActivity];
    return YES;
}

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL * URL = request.mainDocumentURL;
    if ([URL.absoluteString  isEqual: @"item:back"]) {
        shangCheng * shang = [shangCheng deDaoEaglView:nil];
        [shang.MyWebView removeFromSuperview];
        return NO;
    };
    shangCheng * shang = [shangCheng deDaoEaglView:nil];
        [shang.MyActivity startAnimating];
    return YES;
}

- (void)webViewDidStartLoad:(UIWebView *)webView
{
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    shangCheng * shang = [shangCheng deDaoEaglView:nil];
    [shang.MyActivity stopAnimating];
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{

}
@end

调用:
        if(cc.sys.os == cc.sys.OS_IOS || cc.sys.os == cc.sys.OS_OSX){
        	var ret = jsb.reflection.callStaticMethod("shangCheng", "CreatShangChengWebViewWithURL:", "http://www.baidu.com");
        	if (ret) {
        		cc.log("创建成功!");
        	}
        	if (!ret) {
        		cc.log("创建失败");
        	}
        }

上面有两个OC文件,放在Xcode工程iOS文件夹下即可。在Cocos2d-js工程里面调用上面的javascript代码段即可。
 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值