移動應用基本的三種類型javascript
1) Native 應用程序java
2) Web 應用程序web
3) 混合應用程序(Hybrid: Native應用和web應用結合)api
直接運行在電腦上或者智能手機上的本地應用微信
優勢:app
1) 可以訪問手機上的全部功能(GPS,相機等)less
2) 更好的運行速度,性能和用戶體驗性能
3) 支持離線工做(由於是在設備上運行而非web)url
4) 在應用商店下載,而且在主屏幕上輕易的找到應用圖標(符號人們的使用習慣)操作系統
缺點:
1) 開發成本較高
2) 範圍限制較多(智能載特定的操做系統上運行設備)
3) 未知的部署時間(應用商店審批限制)
4) 用戶必須手動下載最新版本
優勢:
1) 適用範圍廣(覆蓋全部的智能手機)
2) 開發成本低
3) 方便,快捷的部署(無需提交到應用商店)
4) 用戶總能訪問到最新版本(沒有手動更新需求)
缺點:
1) 較慢的性能體驗(大部分須要連接到互聯網)
2) 用戶體驗較差
3) 限制用戶使用功能(好比:相機,GPS等)
是本地應用和web應用混合開發的一款應用,一部分運行在設備上,一部分運行在web上。
優勢:
1) 支持多平臺訪問
2) 手機功能均可以訪問
3) 適用於應用商店
4) 部分支持離線功能
缺點:
1) 用戶體驗不如本地應用
2) 性能速度較慢
至於哪一個應用好,須要根據如下狀況,視狀況而定。
App
的體驗和開發週期何者爲先?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註冊在調度中心, 例如