歡迎來(lái)到深圳市來(lái)科信科技有限公司網(wǎng)站!

        已閱讀

        APP原生開(kāi)發(fā)如何與H5進(jìn)行交互

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

        2. h5 調(diào)用 app 的代碼
        因?yàn)?h5 不能直接訪(fǎng)問(wèn)宿主 app,所以這種調(diào)用就相對(duì)復(fù)雜一點(diǎn)。
        這種調(diào)用常用有兩種方式:
        由 app 向 h5 注入一個(gè)全局js對(duì)象,然后在 h5 直接訪(fǎng)問(wèn)這個(gè)對(duì)象,
        由 h5 發(fā)起一個(gè)自定義協(xié)議請(qǐng)求,app 攔截這個(gè)請(qǐng)求后,再由 app 調(diào)用 h5 中的回調(diào)函數(shù)。
         
        (1)由 app 向 h5 注入一個(gè)全局js對(duì)象
        這種方式溝通機(jī)制簡(jiǎn)單,比較好理解,并且對(duì)于 h5 來(lái)說(shuō),沒(méi)有新的東西,所以是比較推薦的一種方式。但這種方式可能存在安全隱患,詳細(xì)查看 你不知道的 Android WebView 使用漏洞。
        (2)由 h5 發(fā)起一個(gè)自定義協(xié)議請(qǐng)求
        這種方式要稍復(fù)雜一點(diǎn),因?yàn)樾枰远x協(xié)議,這對(duì)很多前端開(kāi)發(fā)者來(lái)說(shuō)是比較新的東西。所以一般不推薦這種方式,可以作為第一種方式的補(bǔ)充。
        大致需要以下幾個(gè)步驟:
        由 app 自定義協(xié)議,
        在 h5 定義好回調(diào)函數(shù),
        由 h5 發(fā)起一個(gè)自定義協(xié)議請(qǐng)求,
        app 攔截這個(gè)請(qǐng)求后,進(jìn)行相應(yīng)的操作,獲取返回值
        由 app 調(diào)用 h5 中的回調(diào)函數(shù)。

        以上就是原生 app 與 H5交互的原理。
         
        APP開(kāi)發(fā) 網(wǎng)站開(kāi)發(fā) 產(chǎn)品設(shè)計(jì) 微信公眾號(hào) APP開(kāi)發(fā)公司 用戶(hù)體驗(yàn) APP運(yùn)營(yíng) 微信小程序 產(chǎn)品經(jīng)理 網(wǎng)站設(shè)計(jì)