背景服務器
接口格式網絡
管理界面app
後臺邏輯url
因爲線上樂刻客戶端 App
第一次打開平臺 H5
須要幾秒的加載時間,這個體驗對用戶來講並不友好,爲了讓用戶跳轉 H5
和跳轉到原生同樣的用戶體驗,就須要把 H5
相關的離線資源包下發給客戶端,客戶端就能夠使用離線資源來代替實際網絡請求,節省用戶等待時間和流量消耗。這裏就須要後臺來負責離線資源包的管理和下發。
<!--more-->spa
offlineResourceInfo
接口參數:code
{ //"appVersion": "2.4.0", 能夠去掉,由於請求頭會包含 "resourceversionList": [{ "name": "m", "version": "1.0.0" },{ "name": "coach", "version": "1.0.0" },{ "name": "activity", "version": "1.0.0" }] }
offlineResourceInfo
接口返回結構體:cdn
{ "data": { "resourceList": [{ "name": "m", "version": "1.0.1", "url": "http://cdn.xxx.com/resource/m/m_update_1.0.0_1.0.1.zip", "md5": "a4d7feecbcae8e2ccba3b5ba90aa8a83", "isfull": false },{ "name": "coach", "version": "1.0.1", "url": "http://cdn.xxx.com/resource/coach/coach_full_1.0.1.zip", "md5": "a4d7feecbcae8e2ccba3b5ba90aa8a83", "isfull": true } ] } }
參數說明:接口
"name": 模塊名 "version": 升級版本 "url": 資源包下載地址 "md5": 資源包 md5 "isfull": 是不是全量升級包
資源包需上傳到七牛空間 offlineh5
, 路徑爲 http://cdn.xxx.com/upgrade/[模塊名]/activity.full_1.0.0.zip
ip
資源包需上傳到七牛空間 offlineh5
, 路徑爲 http://cdn.xxx.com/degrade/[模塊名]/activity.full_1.0.0.zip
md5
App
第一次請求時, resourceVersionList
爲空,服務器須要返回全部模塊最新的全量資源。
App
後續請求都會帶上本地最新的resourceVersionList
,服務器遍歷resourceVersionList
,並和服務器上配置的全部升級模塊最新版本進行比較,
若是升級模塊版本與 App
本地版本相隔一個版本,就下發增量包。
若是升級模塊版本比 App
本地版本相隔多個版本(跨版本),就下發全量包。
若是某個模塊不要升級資源包,後臺接口就不須要返回該模塊的信息。
App
後續請求都會帶上本地最新的resourceVersionList
,服務器遍歷version list
,並和服務器上配置的全部降級模塊源版本進行比較,
若是降級模塊源版本與 App
本地版本相同,就下發降級包。
當降級邏輯和升級邏輯同時知足條件時,只啓用降級邏輯。