喜歡從業(yè)的專注,七分學(xué)習(xí)的態(tài)度似枕。
概述
H5-APP:場(chǎng)景提出是應(yīng)對(duì)當(dāng)前企業(yè)系統(tǒng)中面臨的主要問題而提出來(lái)的求厕。原生APP在企業(yè)系統(tǒng)中面臨的主要問題包括:重復(fù)研發(fā),差異與同步离唬,升級(jí)更新后专,外系統(tǒng)交互等問題。利用H5集成的方案將ios和andorid的人員需求集中在Java+H5上输莺,解決差異和交互問題的基礎(chǔ)上還能實(shí)現(xiàn)對(duì)需求的快速響應(yīng)戚哎。
問題
H5構(gòu)建APP確實(shí)能從直觀上聚合人力,更高效的研發(fā)和響應(yīng)以及發(fā)布,但H5的方式也存在一些重要問題。面對(duì)H5嵌入到APP框架的方式至少會(huì)碰到這些問題:安全性单绑、攔截問題、加載慢甘畅、分發(fā)性、https限制实夹,在一些硬件調(diào)用的場(chǎng)景還需要解決原生交互的問題橄浓。
實(shí)現(xiàn)架構(gòu)
針對(duì)H5需要解決的問題以及H5本身存在的問題,在利用H5特性的同時(shí)原生APP框架也需提供部分通用API來(lái)彌補(bǔ)H5的問題亮航。整體的實(shí)現(xiàn)從外到里用三層來(lái)實(shí)現(xiàn):分發(fā)層荸实、接口層、業(yè)務(wù)層缴淋。
-
分發(fā)層--架構(gòu)層:
分發(fā)層將外部的訪問請(qǐng)求進(jìn)行轉(zhuǎn)換和轉(zhuǎn)派准给,可以利用ngnix來(lái)處理,需要處理和轉(zhuǎn)換的請(qǐng)求包括http重抖、https露氮、ipv6,處理完后的請(qǐng)求根據(jù)分發(fā)規(guī)則到配置的Server服務(wù)上钟沛。外部頁(yè)面集成接口和APP框架集成地址均配置ngnix的地址和端口畔规。
分發(fā)架構(gòu)
特別對(duì)于二維碼掃描,小程序嵌入等有https安全訪問要求的情況恨统,該層的轉(zhuǎn)換顯得尤為重要叁扫,利用nginx將外部的https請(qǐng)求轉(zhuǎn)換成內(nèi)部服務(wù)器間的http請(qǐng)求,應(yīng)用集群可以使用統(tǒng)一的http服務(wù)配置.
- 接口層--嵌入層和安全控制層:
接口層是主要的應(yīng)用入口層,模塊上分為原生框架API和H5的Web應(yīng)用接口畜埋。原生框架API包括獲取設(shè)備信息莫绣、控制相機(jī)、控制音頻悠鞍,觸摸點(diǎn)擊对室、菜單事件、攔截以及異常反饋等API。H5的Web應(yīng)用接口包括H5發(fā)布地址掩宜、H5集成界面蔫骂、密鑰控制、其它接口(webservice锭亏、http接口)纠吴、原生API交互硬鞍。既要保證H5界面的訪問性慧瘤,又要保證H5頁(yè)面的安全性。密鑰控制針對(duì)H5的發(fā)布地址和H5的集成界面固该,對(duì)于URL的訪問來(lái)源和時(shí)效性進(jìn)行控制锅减,H5發(fā)布地址的密鑰串由原生框架創(chuàng)建,H5集成界面的接口的密鑰由外系統(tǒng)創(chuàng)建傳入伐坏。 H5的發(fā)布地址由原生框架的WebView進(jìn)行URL嵌入訪問怔匣。
對(duì)于原生框架的URL嵌入,android系統(tǒng)可以使用騰訊的TBS瀏覽服務(wù)桦沉,IOS使用UIWebView進(jìn)行嵌入每瞒。原生框架最初可以提供最常用的API,之后再進(jìn)行擴(kuò)展纯露,最常用的API如:IP等網(wǎng)絡(luò)信息獲取的API剿骨、拍照的API、設(shè)備規(guī)格信息獲取的API埠褪。
- 業(yè)務(wù)層--業(yè)務(wù)邏輯實(shí)現(xiàn):
業(yè)務(wù)層包含業(yè)務(wù)邏輯浓利、接口調(diào)用,業(yè)務(wù)層與其它企業(yè)系統(tǒng)沒有什么不同钞速,但H5的業(yè)務(wù)層保持更簡(jiǎn)單的業(yè)務(wù)處理贷掖,復(fù)雜的業(yè)務(wù)處理通過接口調(diào)用其它系統(tǒng)實(shí)現(xiàn)。
對(duì)于業(yè)務(wù)層的原則渴语,簡(jiǎn)單的邏輯DAO層直接操作DB處理苹威,復(fù)雜的業(yè)務(wù)邏輯調(diào)用其它系統(tǒng)接口完成。
總結(jié):對(duì)于H5構(gòu)建APP在企業(yè)系統(tǒng)中的應(yīng)用是可靠和效率的驾凶,但針對(duì)H5的缺陷也需結(jié)合原生APP的功能來(lái)進(jìn)行彌補(bǔ)牙甫。
<small>堅(jiān)持積累,堅(jiān)持學(xué)習(xí)狭郑。</small>