iOS swift 和 H5交互 --MessageHandle

2020-08-13  本文已影响0人  风吹吹
image.png

图片上的弹框是iOS原生弹框
主要介绍H5调用swift

js调用iOS

一 iOS端

1.初始化WKWebVIew,向webView注入 通知名称
"myName"是移动端与iOS统一的名称

        let theConfiguration = WKWebViewConfiguration.init()
        theConfiguration.userContentController.add(self, name: "myName")
        self.wkWebView = WKWebView.init(frame: CGRect(x: 0
        , y: 0
        , width: SCREENW
        , height: SCREENH), configuration: theConfiguration)

2.实现WKScriptMessageHandler代理方法

func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
        if let messageBody = message.body as? [String:Any]
        {
            let message = messageBody["message"]
            print(message!)
        }
}

二 web端

//点击事件,实现以下语句就可以

jsFunc(){
var message = {'message':'MessageHandler 方式'};
window.webkit.messageHandlers.myName.postMessage(message);
}

如果是angular的项目,typescript 里面 要加上window的声明

declare var window: Window & { webkit: any };

iOS调用js

一iOS代码

        self.wkWebView.evaluateJavaScript("ocToJs('loginSucceed', 'oc_tokenString')") { (data, error) in
            
        }

二js代码

function ocToJs(action, params) {
 
}
上一篇 下一篇

猜你喜欢

热点阅读