首页 > Web开发 > 详细

关于js调用oc

时间:2015-09-10 14:24:14      阅读:188      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!