zoukankan      html  css  js  c++  java
  • Vue H5 与 APP 交互 (IOS为例)

    Swift与H5交互:Swift与JS方法互调

    前言
    最近做了一个Vue H5页面内嵌APP的的项目,需要进行双方交互的问题,查阅过很多资料博客,细节请自行查阅资料

    H5调用IOS的方法

    在IOS: swift中WKWebView 的 userContentController属性是专门用来监听JS调用方法的,而userContentController的类WKUserContentController中,有一个专门监听JS方法句柄的方法
    WKScriptMessageHandler是需要设置的代理,一般是WebView所在的控制器,name就是JS的方法句柄。

    在H5: window.webkit.messageHandlers.name.postMessage(argument);
    Name: 就是与IOS约定的方法
    argument: 传递给IOS 的数据字符串格式的

    IOS调用H5的方法

    h5 在Window中定义好方法 window.H5Func = function() { return "这是h5返回的数据" }

    IOS 可以直接调用H5的方法获取到数据

    IOS传递数据给H5

    app需要写的代码

    let param = ["uid":GYUserInfo.user_uid()!, "token":GYUserInfo.user_token()!]
                let data = try? JSONSerialization.data(withJSONObject: param, options: JSONSerialization.WritingOptions.prettyPrinted)
                let jsonString = String.init(data: data!, encoding: String.Encoding.utf8)
                let js = "userInfo = \(jsonString!)"
                let script = WKUserScript.init(source: js, injectionTime: WKUserScriptInjectionTime.atDocumentStart, forMainFrameOnly: true)
                configuration.userContentController.addUserScript(script)
    

    H5接收

    window.iOSInfo
    let iOSInfo = JSON.parse(JSON.stringify(window.iOSInfo));
    // iOSInfo. username  iOSInfo. token iOSInfo.avatar
    
  • 相关阅读:
    BOM与DOM
    CSS中的长度单位及颜色表示
    关于display:grid layout
    关于position
    简单的注册表单
    We重邮
    APP定制开发的完整流程
    国内移动广告平台的混战大盘点
    Mobile App Monetization, Analysis & Mediation – Google AdMob
    代码优化
  • 原文地址:https://www.cnblogs.com/Hekiss/p/15625244.html
Copyright © 2011-2022 走看看