js 调用oc——webView

来源:互联网 发布:设计模式php 编辑:程序博客网 时间:2024/05/01 16:05
//  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 shangChengstatic 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
原创粉丝点击