美文网首页
iOS swift 和 H5交互 --MessageHandle

iOS swift 和 H5交互 --MessageHandle

作者: 风吹吹 | 来源:发表于2020-08-13 14:39 被阅读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) {
     
    }
    

    相关文章

      网友评论

          本文标题:iOS swift 和 H5交互 --MessageHandle

          本文链接:https://www.haomeiwen.com/subject/mdibdktx.html