首先:要在项目导入
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(***);
时间: 2024-10-16 20:04:51