2018-12-18
2018-12-18 本文已影响0人
qinziyng
iOS WKWebView 中native调用js, js调用native
- native设js比较简单,一行函数即可:
webView.evaluateJavaScript("callJsFunc()", completionHandler:nil)
其中:webView类型是WKWebView, callJsFunc()是webView加载的html中的js里的方法:
<script type="text/javascript">
function callJsFunc(){
alert("Hello swift");
}
</script>
-
js调用native:
关键代码:
webView.configuration.userContentController.add(self, name: "callbackHandle")
其中:webView类型是WKWebView, self实现WKScriptMessageHandler 协议,协议方法:
func userContentController(_userContentController:WKUserContentController,
didReceive message:WKScriptMessage) {
switch message.name{
case "callbackHandle":
print("\(message.body)")
default: break
}
}
<script type="text/javascript">
function callNativeFunc(){
try{
webkit.messageHandlers.callbackHandle.postMessage("Hello World")
}catch(error){
console.error('The native context not exist ')
}
}
</script>