H5与APP混合开发通信交互记录

JS给APP传输信息

以下方法兼容IOS和安卓

callMobile(parameters,messageHandlerName) {
  //handlerInterface由iOS addScriptMessageHandler与andorid addJavascriptInterface 代码注入而来。
  if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
    // alert('ios')
    window.webkit.messageHandlers[messageHandlerName].postMessage(JSON.stringify(parameters))
  } else {
    // alert('安卓')
    //安卓传输不了js json对象,只能传输string
    window.webkit[messageHandlerName](JSON.stringify(parameters))
  }
}

由app将原生方法注入到window上供js调用

  • messageHandlerName 约定的通信方法
  • parameters 需要传入的参数

APP调用JS方法

将js方法绑定到window供APP访问

  • 此例是在VUE下使用
  mounted() {
    window.appJSExitHandle = function () {
      appJSExitHandle(2, () => {
        callMobile({ type: 2, data: { isBackAppPage: true } },'appJSHandle')
      })
    }
  },

版权声明:本文为alisa_lisa原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。