IOS和android交互

第一次作和原生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) {}
            }
相關文章
相關標籤/搜索