2018-12-18

2018-12-18  本文已影响0人  qinziyng

iOS WKWebView 中native调用js, js调用native

  1. native设js比较简单,一行函数即可:

webView.evaluateJavaScript("callJsFunc()", completionHandler:nil)

其中:webView类型是WKWebView, callJsFunc()是webView加载的html中的js里的方法:


       <script type="text/javascript">

          function callJsFunc(){    

              alert("Hello swift");

          }

        </script>
  1. 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>
上一篇 下一篇

猜你喜欢

热点阅读