技术干货 | mPaaS 小程序高玩带你起飞:客户端预置小程序无视网络质量
簡介: 弱網拉包無障礙,深度提升用戶體驗
?
傳統的小程序技術容易受到網絡環境影響,當網絡質量不佳時可能導致拉取不到小程序包的情況。通過預置小程序,即可規避該問題。本文介紹了預置小程序的原理和預置小程序的實現過程。
?
什么是預置小程序
預置小程序是指將小程序的渲染、邏輯、配置等靜態資源打包在一個壓縮包內,客戶端預先下載小程序包到本地、直接從本地加載資源的過程。預置小程序可以最大程度地擺脫網絡環境對 mPaaS 小程序頁面的影響。使用預置包能夠為客戶端帶來以下優勢:
?
- 提升用戶體驗
通過預置包的方式把頁面內靜態資源嵌入到應用中并隨應用一起發布,可以使用戶第一次開啟應用時即無需依賴網絡環境下載資源,可以直接開始使用。
?
- 實現動態更新
在推出新版本或緊急發布的時候,可以在小程序 IDE 中進行迭代開發,通過 mPaaS 控制臺發布,客戶端中集成的小程序 SDK 會自動將小程序更新到最新的版本。這種發布無需通過應用商店審核,可以讓用戶及早接收到更新。
?
預置小程序的實現原理
本文從以下方面介紹了預置小程序的實現原理:
- 小程序預置包的結構
- 小程序預置包的使用過程
?
小程序預置包的結構
小程序預置包是一個 .amr 格式的壓縮文件,將后綴 amr 改成 zip 解壓縮后,可以看到其中包含的 HTML 資源和 JavaScript 代碼等。待小程序容器加載后,這些資源和代碼能在 UC 內核渲染。
?
以 Android 系統為例,下圖顯示了一般資源包的目錄結構:
- 一級目錄:一般為資源包的 ID,如 2020121620201216_1.0.1.0.zip。
- 二級目錄及往后即為業務自定義的資源文件。并設定當前預置包默認打開的主入口文件,如 /index.html。
?
小程序預置包的使用過程
使用小程序預置包的過程可以分為以下三個步驟:
從服務端請求小程序包,并將小程序包信息存儲到本地數據庫的過程。包信息包含了小程序包的下載地址、小程序包版本號等。
把小程序包從服務端下載到手機。
下載目錄,拷貝到手機安裝目錄。
?
前提條件
- 已接入小程序組件。更多關于小程序組件的接入信息,請參見 快速開始使用小程序。
- 已接入 H5 容器 組件。更多關于 H5 容器的接入信息,請參見 快速開始使用 H5 容器。
?
操作步驟-Android
?
將下載到的 AMR 文件和配置文件放置在 mPaaS 項目的 assets 目錄下。
?
在工程中添加預置代碼,以在應用啟動時調用預置代碼安裝應用。預置代碼示例如下:
new Thread(new Runnable(){ @Override public void run(){ MPNebula.loadofflineNebula(jsonFileName: "h5_json.json", new MPNebulaOfflineInfo(offLineFileName:"2020121620201216_1.0.1.0.amr", addId:"2020121620201216", version:"1.0.1.0")); } }).start();說明:
- 此方法為阻塞調用,請不要在主線程上調用內置預置包方法。
- 此方法僅能調用一次。若多次調用,僅第一次調用有效。所以需要一次性傳入所有需預置預置包信息。
- 如果內置多個 AMR 包,需要要確保文件已存在;如不存在,會造成其他內置預置包失敗。
?
默認情況下,每次打開應用,小程序 SDK 都會嘗試檢查是否有可更新的版本。出于服務端壓力考慮,該檢查有時間間隔限制,默認為 30 分鐘。如果想立即檢查最新可用版本,調用下方的代碼來請求更新。一般情況下,可以在應用啟動或者用戶登錄后調用。
結語
mPaaS 小程序源自于支付寶小程序框架,億級線上業務體量的錘煉,安全性媲美支付寶原生能力。不僅面向自有 App 投放小程序,更可快速構建打包,覆蓋支付寶、淘寶、釘釘等應用。
?
通過使用上述預置小程序的方案,預置小程序不僅可以最大程度地擺脫網絡環境對 mPaaS 小程序頁面的影響,還能深度體驗用戶體驗、實現動態更新。
?
mPaaS 小程序(Alpha)限時免費申領中,全新內核完全對齊支付寶標準 API,為您提供更精簡的安卓端 SDK。
?
作者:查克拉空
原文鏈接
本文為阿里云原創內容,未經允許不得轉載
總結
以上是生活随笔為你收集整理的技术干货 | mPaaS 小程序高玩带你起飞:客户端预置小程序无视网络质量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 埃森哲携手阿里云,采用K8s容器云服务为
- 下一篇: 重磅发布 阿里云数据中台全新产品Data