歡迎來到深圳市來科信科技有限公司網站!
        您當前的位置:深圳APP開發 > 新聞資訊 > APP開發資訊 >

        已閱讀

        APP原生開發如何與H5進行交互

        來源:www.bqtao.cn ?? ?? 發布時間:2019-05-17
         
        目前,越來越多的APP開發會選擇原生與H5混合的Hybrid App即混合模式APP。H5頁面很多時候都需要與原生 app 進行交互、溝通(運行在 webview中),比如微信的 jssdk,通過 window.wx 對象調用一些原生 app 的功能。下面我們就來聊一聊原生 app 與 H5交互的原理。
        原生 app 與 H5交互的原理
        原生 app 與H5的交互,本質上說,就是兩種調用:
        app 調用 h5 的代碼
        h5 調用 app 的代碼
         
        1. app 調用 h5 的代碼
        因為 app 是宿主,可以直接訪問 h5,所以這種調用比較簡單,就是在 h5 中曝露一些全局對象(包括方法),然后在原生 app 中調用這些對象。

        2. h5 調用 app 的代碼
        因為 h5 不能直接訪問宿主 app,所以這種調用就相對復雜一點。
        這種調用常用有兩種方式:
        由 app 向 h5 注入一個全局js對象,然后在 h5 直接訪問這個對象,
        由 h5 發起一個自定義協議請求,app 攔截這個請求后,再由 app 調用 h5 中的回調函數。
         
        (1)由 app 向 h5 注入一個全局js對象
        這種方式溝通機制簡單,比較好理解,并且對于 h5 來說,沒有新的東西,所以是比較推薦的一種方式。但這種方式可能存在安全隱患,詳細查看 你不知道的 Android WebView 使用漏洞。
        (2)由 h5 發起一個自定義協議請求
        這種方式要稍復雜一點,因為需要自定義協議,這對很多前端開發者來說是比較新的東西。所以一般不推薦這種方式,可以作為第一種方式的補充。
        大致需要以下幾個步驟:
        由 app 自定義協議,
        在 h5 定義好回調函數,
        由 h5 發起一個自定義協議請求,
        app 攔截這個請求后,進行相應的操作,獲取返回值
        由 app 調用 h5 中的回調函數。

        以上就是原生 app 與 H5交互的原理。
         
        APP開發 網站開發 產品設計 微信公眾號 APP開發公司 用戶體驗 APP運營 微信小程序 產品經理 網站設計