關(guān)于Hybrid淺談
前言
現(xiàn)在使用HTML5開發(fā)app好像慢慢成為了一種趨勢(shì), 其中比較主流的模式Hybrid App和React Native開發(fā)。
Hybrid App(混合模式移動(dòng)應(yīng)用)是介于Web-App和React Native間的一種開發(fā)模式,兼具了Native App良好的用戶交互體驗(yàn)的優(yōu)勢(shì)和Web App跨平臺(tái)開發(fā)的優(yōu)勢(shì)
React Native是Facebook開源的框架,可以直接用Javascript開發(fā)原生的APP,并不使用WebView,這里就不詳談了。
Hybrid App優(yōu)點(diǎn):
效率高 -----------html5寫界面的速度比native快多了
跨平臺(tái) -----------移動(dòng)端只要使用WebView裝載就OK了
低成本 -----------沒有學(xué)習(xí)成本,不需要學(xué)習(xí)新語(yǔ)言,只需要前端和移動(dòng)端
Hybrid App缺點(diǎn):
體驗(yàn)比不上Native,甚至不如React Native。
只適合做重展示輕交互的功能。
依賴于WebView,而Android WebView的設(shè)計(jì)簡(jiǎn)直坑爹。
交互設(shè)計(jì)是Hybrid開發(fā)的重中之重,如果這塊設(shè)計(jì)不好會(huì)讓你后面痛不欲生。
交互接口 -----------NativeUI組件的調(diào)用,系統(tǒng)、設(shè)備等信息讀取的接口。Native與Html5互調(diào)以及回調(diào)。
資源訪問 -----------Native首先要考慮如何訪問H5資源,做到既能以file的方式訪問Native內(nèi)部資源,又能使用url的方式訪問線上資源;需要提供增量更新機(jī)制,擺脫APP迭代發(fā)版問題,避免用戶升級(jí)。這里會(huì)涉及到靜態(tài)資源在APP中的存放策略,更新策略的設(shè)計(jì),需要服務(wù)器端的支持。
開發(fā)調(diào)試 -----------功能設(shè)計(jì)并沒有完,如果WebView加載html交互出了問題,到底是Native的問題還是Html的問題,中間哪里出了bug。
App調(diào)H5 -----------將一組API綁定在WebView的window對(duì)象上,App通過原生方法調(diào)用window對(duì)象中的js方法
H5調(diào)App -----------App實(shí)現(xiàn)對(duì)WebView URL的觀察者模式,H5通過改變URL的哈希值使得App察覺并解析URL執(zhí)行對(duì)應(yīng)的操作?;蛘呤褂肁ndroid自帶的方式,使用addJavascriptInterface方法提供一個(gè)對(duì)象給JS調(diào)用。
Hybrid開發(fā)或許不會(huì)成為主流,但絕對(duì)是提高效率、降低成本的選擇。
這算是我第一篇正式的博文了,其實(shí)早就有寫博客的想法,只是這種原因。。。。。。其實(shí)總結(jié)起來就是懶,啊啊啊?。。『竺鏁?huì)堅(jiān)持寫下去的。