码迷,mamicode.com
首页 > Web开发 > 详细

关于js调用oc

时间:2015-09-10 14:25:36      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

首先:要在项目导入

JavaScriptCore.frameWork

在webview的控制器.h中引用

#import <JavaScriptCore/JavaScriptCore.h>

 

 

然后:我们可以在

- (void)webViewDidFinishLoad:(UIWebView *)webView方法中

通过

 JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

获取一个JSContext 对象 

这个对象我理解为 js的控制中心

 

现在有两种方法让js调用我们自己的方法

1.直接给context对象赋值一个block方法: 

context[@"block"] = ^(参数){};

js可以直接调用:

block(参数)

 

2.将webView控制器的self对象 赋值给context对象的一个子类 : 

context[@"zhaozhi"] = self;

 这样js就可以通过对象调用方法,但是要在.h中写一个协议,方法写在里面:

@protocol WebViewJSExport <JSExport>

 

-(void)goToExplosionDetail:(NSString *)message;

 

@end

控制器遵守这个协议

js就可以调用这个方法了,调用代码:

zhaozhi.method(***);

 

关于js调用oc

标签:

原文地址:http://www.cnblogs.com/zz1230/p/4797725.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!