使用H5開發(fā)出來的App可以是混合型應(yīng)用(Hybrid App),也可以是Web的應(yīng)用(Web App)。混合型應(yīng)用安裝在iOS和安卓手機(jī)上,Web的應(yīng)用在微信中運(yùn)行?;旌闲蛻?yīng)用看上去是一個(gè)本地化應(yīng)用(NativeApp),其實(shí)里面只有一個(gè)UIWebView,就是包了個(gè)客戶端的殼,其實(shí)里面是H5的網(wǎng)頁,通過Cordova插件,使得App具備訪問本地服務(wù)的能力,例如相機(jī)、錄音等等。
H5 App由前端頁面和后端服務(wù)構(gòu)成(如圖1-12),前端頁面包括頁面組件、頁面代碼、頁面樣式。在前端頁面中可以調(diào)用后端服務(wù)、可以調(diào)用設(shè)備API。
圖1-12 H5 App構(gòu)成
1. 應(yīng)用
一個(gè)應(yīng)用由多個(gè)頁面構(gòu)成。
2. 頁面
一個(gè)頁面由描述HTML、代碼JS、樣式CSS三部分構(gòu)成。在頁面中即可以調(diào)用服務(wù),實(shí)現(xiàn)訪問數(shù)據(jù)庫等動(dòng)態(tài)能力;又可以調(diào)用本地設(shè)備API,實(shí)現(xiàn)調(diào)用設(shè)備硬件能力。WeX5將HTML標(biāo)簽封裝成組件,因此頁面的描述部分由多個(gè)組件構(gòu)成。
3. 組件
組件是將HTML標(biāo)簽進(jìn)行封裝,實(shí)現(xiàn)更強(qiáng)能力的可視化對(duì)象。組件有屬性、事件、方法、操作和樣式等。
一個(gè)頁面分為數(shù)據(jù)和展現(xiàn)兩個(gè)部分,組件也對(duì)應(yīng)分為數(shù)據(jù)組件和展現(xiàn)組件(如圖1-13)。使用數(shù)據(jù)組件存儲(chǔ)頁面中的數(shù)據(jù);使用展現(xiàn)組件將頁面展現(xiàn)出來。數(shù)據(jù)組件和展現(xiàn)組件使用雙向數(shù)據(jù)綁定(Two-Way Data Binding)。數(shù)據(jù)源或綁定目標(biāo)對(duì)象的屬性的值發(fā)生改變時(shí)會(huì)互相通知,也就是界面的操作能實(shí)時(shí)反映到數(shù)據(jù),數(shù)據(jù)的變更能實(shí)時(shí)展現(xiàn)到界面。
圖1-13 組件分類
4. 服務(wù)
服務(wù)即可以使用WeX5提供的BasS,也可以使用自定義的后端服務(wù),更可以由云提供服務(wù)。
5. 設(shè)備硬件能力
WeX5的混合模式底層基于Cordova/PhoneGap。Cordova提供了一組設(shè)備相關(guān)的API,通過這組API,移動(dòng)應(yīng)用能夠以JavaScript訪問原生的設(shè)備功能,如攝像頭、麥克風(fēng)等。
更多建議: