第一次作和原生app的混合开发,其中有一些活动页面须要我这边用h5来作。android
那么一定涉及一个问题。就是和原生app作交互。ios
分为ios和android。方法不一样,逻辑思路都差很少。web
大致思路就是我和app端约定一个方法,相似于?接头暗号?app
好比说咱们约定了一个方法:’蓝天白云‘,那么当我js调用这个方法的时候,app端经过'蓝天白云',认出了我,并做出了响应。框架
那么问题来了,不少同窗(大概只有我本身)会说了,我原生js定义的函数,他app怎么调用,怎么知道我调了改方法。函数
****和app端沟通之后,原来app中的底层,或者框架里,会定义一个方法来接受咱们的js函数****(这里不用管,咱们只要管咱们调用什么方法就能够了)post
上代码this
//定义传的参数 let sendData = { url: "articleDetail", id: v.id }; //判断运行环境(搜一下) if (this.isiOS) { //解释一下,这里定义的window.xxxx什么方法,咱们的window对象下是没有这个方法的,只有当咱们的程序,运行到了适当的环境中,app会给咱们的window对象添加这个方法,让咱们能够调用,因此用了try防止报错 //下面的callIos和callAndroid就是我和app大兄弟约定的方法 try { window.webkit.messageHandlers.callIos.postMessage( JSON.stringify(sendData) ); } catch (e) {} } else { try { window.jsInterface.invokeMethod("callAndroid", [ JSON.stringify(sendData) ]); } catch (e) {} }