Hybrid APP架構設計思路

關於Hybrid模式開發app的好處,網絡上已有不少文章闡述了,這裏不展開。javascript

本文將從如下幾個方面闡述Hybrid app架構設計的一些經驗和思考。java

通信

做爲一種跨語言開發模式,通信層是Hybrid架構首先應該考慮和設計的,日後全部的邏輯都是基於通信層展開。android

Native(以Android爲例)和H5通信,基本原理:web

  •                               Android調用H5:經過webview類的loadUrl方法能夠直接執行js代碼,相似瀏覽器地址欄輸入一段js同樣的效果瀏覽器

webview.loadUrl("JavaScript: alert('hello world')");網絡

  •                               H5調用Android:webview能夠攔截H5發起的任意url請求,webview經過約定的規則對攔截到的url進行處理(消費),便可實現H5調用Android架構

  •                                      var ifm = document.createElement('iframe');app

ifm.src = 'jsbridge://namespace.method?[...args]';url

JSBridge即咱們一般說的橋協議,基本的通信原理很簡單,接下來就是橋協議具體實現。spa

P.S:註冊私有協議的作法很常見,咱們常常遇到的在網頁里拉起一個系統app就是採用私有協議實現的。app在安裝完成以後會註冊私有協議到OS,瀏覽器發現自身不能識別的協議(http、https、file等)時,會將連接拋給OS,OS會尋找可識別此協議的app並用該app處理連接。好比在網頁裏以itunes://開頭的連接是Apple Store的私有協議,點擊後能夠啓動Apple Store而且跳轉到相應的界面。國內軟件開發商也常常這麼作,好比支付寶的私有協議alipay://,騰訊的tencent://等等。

相關文章
相關標籤/搜索