ios webView怎麼實現原生呼叫JS?
阿新 • • 發佈:2018-11-13
在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”)
}];