根據不同需求,您可以將不同的業務封裝成為一個離線包,通過發布平臺下發對客戶端資源進行更新。
生成一個離線包主要分為以下兩步:
構建前端 .zip 包
根據離線包使用的場景不同,配置路徑分為以下兩種:
全局資源包
普通資源包
在同一個 H5 離線包中,全局資源包與普通資源包不可共存。
離線包 ID(即下文中的一級目錄)必須為 8 位數字。
全局資源包
可以將被其他多個普通資源包引用的通用資源放置在全局資源包內,并按下列規則指定包內的資源路徑。
一級目錄:全局資源包的 ID,如
77777777
。二級目錄:指向資源可訪問的服務器域名地址。
公有云:在公有云中,二級目錄需固定為
mcube-prod.mpaascloud.com
,否則將無法使用實時發布對接的加速能力。專有云:請查詢專有云部署的 mdsweb 服務器域名地址。
三級目錄:
appId _ workspaceId
,例如53E5279071442_test
。三級目錄往后即為業務自定義的公共資源文件。在公共資源文件的文件夾名、文件名以及文件中,避免使用特殊字符。特殊字符是指會被 urlencode 函數轉換的字符。
根據以上規則組織資源文件后,即可按照如下格式快速獲得資源文件的路徑。
公有云:
http://域名/appID_workspace/資源文件路徑
。專有云:
http://域名/mcube/appID_workspace/資源文件路徑
。重要專有云環境下資源文件的路徑需要在二級目錄(服務器域名)后添加
/mcube
。示例:
在專有云環境中,二級目錄為專有云部署的 mdsweb 服務器域名地址,此處以
mdsweb-outer.alipay.net
為例。下圖中資源文件common.js
的路徑為https://mdsweb-outer.alipay.net/mcube/53E5279071442_test/common.js
。
公共資源的絕對路徑長度不要超過 100 字符,否則會導致客戶端加載資源失敗以及頁面白屏。
服務端未控制全局資源包版本,用戶可根據實際需求,通過在三級目錄以后添加文件目錄結構的方式,來自定義控制文件的高低版本。
在專有云環境中,如果服務端采用的文件存儲格式為 HDFS 或 AFS,則需要在上述第三級目錄前增加一個目錄,該目錄名稱為 mdsweb 服務器中的存儲空間(bucket)的名稱。
若引用公共資源,則在普通離線包內訪問全局資源包中的內容,必須通過絕對路徑訪問,如 https://mcube-prod.mpaascloud.com/53E5279071442_test/common.js。
普通資源包
按業務將相關的 HTML、CSS、JavaScript、圖片等前端資源放置在同一個離線包內,目錄結構如下:
一級目錄:普通資源包的 ID,如 20171228。
二級目錄及往后即為業務自定義的資源文件。建議所有的前端文件最好保存在一個統一的目錄下,如
/www
,并設定當前離線包默認打開的主入口文件,如/www/index.html
。
生成 .zip 包
配置完資源包的路徑后,即可直接將 appId 所在的目錄整體壓縮為一個 .zip 包。
在線生成 .amr 包
進入控制臺的 實時發布 > 離線包管理 頁面,將上一步中生成的 .zip
包上傳到 MDS 發布平臺,生成 .amr
包。具體操作步驟,參考 實時發布 > 創建離線包。
在新增離線包配置中,離線包客戶端范圍的 iOS 最低版本需低于 iOS 客戶端 info.plist 文件中的
Product Version
字段(見下圖),iOS 客戶端的最低版本建議填寫 1.0.0。建議 info.plist 文件中的
Product Version
與Bundle versions string, short
的值保持一致,否則可能導致離線包不生效。