第一次作和原生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) {} }