Native App vs Web App 以及 Hybrid App的實現原理

移動應用基本的三種類型javascript

1)  Native 應用程序java

2)  Web 應用程序web

3)  混合應用程序(Hybrid: Native應用和web應用結合)api

 

Native 應用

直接運行在電腦上或者智能手機上的本地應用微信

優勢:app

1)  可以訪問手機上的全部功能(GPS,相機等)less

2)  更好的運行速度,性能和用戶體驗性能

3)  支持離線工做(由於是在設備上運行而非web)url

4)  在應用商店下載,而且在主屏幕上輕易的找到應用圖標(符號人們的使用習慣)操作系統

缺點:

1)  開發成本較高

2)  範圍限制較多(智能載特定的操做系統上運行設備)

3)  未知的部署時間(應用商店審批限制)

4)  用戶必須手動下載最新版本

 

Web 應用程序

優勢:

1)  適用範圍廣(覆蓋全部的智能手機)

2)  開發成本低

3)  方便,快捷的部署(無需提交到應用商店)

4)  用戶總能訪問到最新版本(沒有手動更新需求)

 

缺點:

1)  較慢的性能體驗(大部分須要連接到互聯網)

2)  用戶體驗較差

3)  限制用戶使用功能(好比:相機,GPS等)

 

混合應用(Hybrid)

是本地應用和web應用混合開發的一款應用,一部分運行在設備上,一部分運行在web上。

優勢:

1)  支持多平臺訪問

2)  手機功能均可以訪問

3)  適用於應用商店

4)  部分支持離線功能

缺點:

1)       用戶體驗不如本地應用

2)       性能速度較慢

 

至於哪一個應用好,須要根據如下狀況,視狀況而定。

  1. App的體驗和開發週期何者爲先?
  2. APP的更新週期是否頻繁?
  3. 開發資源
  4. 應用平臺

 

Hybrid App 實現原理:

 

(一)   Native 調用JS

1)  native經過string調用js

2)  webview 調用js中的eval方法,將string轉化爲js方法

3)  webview調用js方法

 

 

(二)Js 調用 Native

 

1)       javascript改變url,經過url傳遞調用的方法和參數

2)       webview監聽到url的變化,而且探測到url中定義的方法和參數

3)       尋找對應的映射表,找到native對應接口api進行調用

4)       執行javascript調用方法時傳入回調string並添加數據

5)       Webview解析string轉化爲javascript進行調用

 

app自身能夠自定義url schema,而且把自定義的url註冊在調度中心, 例如

  • ctrip://wireless 打開攜程App
  • weixin:// 打開微信
相關文章
相關標籤/搜索