swift - WKWebView JS 交互

本文介绍WKWebView怎么与js交互,至于怎么用WKWebView这里就不介绍了

html代码


    
    
        
            H5测试
        
    
    
        

标题1(App调用Js使标题变成红色)

APP调JS

  • 代码
//调用js
webView.evaluateJavaScript("changeHead()", completionHandler: {
            (any, error) in
            if (error != nil) {
                Log.error("\(error)")
            }
        })
  • 结果
swift - WKWebView JS 交互_第1张图片
result1.png

JS给APP传参数

    1. 首先注册你需要监听的js方法名
//监听js
webView.configuration.userContentController.add(self, name: "callbackHandle")
webView.configuration.userContentController.add(self, name: "callbackHandle2")
  • 2.继承WKScriptMessageHandler 并重写userContentController方法,在该方法里接收JS传来的参数
@available(iOS 8.0, *)
func userContentController(_ userContentController: WKUserContentController,
                               didReceive message: WKScriptMessage) {

        switch message.name {
        case "callbackHandle":
            //单个参数
            Log.info("\(message.body)")
        case "callbackHandle2":
            //多个参数
            if let dic = message.body as? NSDictionary {
                let key: String = (dic["key"] as AnyObject).description
                let value: String = (dic["value"] as AnyObject).description

                Log.info("key: \(key)")
                Log.info("value: \(value)")

            }
        default: break
        }

    }
  • 3.结果
result.png

你可能感兴趣的:(swift - WKWebView JS 交互)