1. 程式人生 > >ios webView怎麼實現原生呼叫JS?

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”)
}];