ios webView怎么实现原生调用JS?

在iOS 7之后,apple添加了一个新的库JavaScriptCore,用来做JS交互,因此JS与原生OC交互也变得简单了许多。
第一种方法

  • 首先导入JavaScriptCore库, 然后在OC中获取JS的上下文

     JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];  
    
  • 再然后定义好JS需要调用的方法,

    JSValue *Callback = jsContext[@“方法名字”];
    [Callback callWithArguments:@[]];
    

第二种方法

第三方的框架使用。
在这里推荐一个比较好的第三方库即:WebViewJavascriptBridge
通过使用该库可以轻松实现JS与原生交互。
//初始化WebViewJavascriptBridge方法
_bridge= [WebViewJavascriptBridge bridgeForWebView:self.BookWebView webViewDelegate:self handler:^(id data,WVJBResponseCallback responseCallback) {}];
//原生与JS约定接口名为“testObjcCallback”,data是JS传递过来的信息,responseCallback来将信息传递给JS
[_bridge registerHandler:@“testObjcCallback” handler:^(id data,WVJBResponseCallback responseCallback) {
responseCallback(“postInfomationToJS”)
}];

猜你喜欢

转载自blog.csdn.net/u013983033/article/details/83826037