DCLOUD插件市場——APP版本更新、強制更新、漂亮彈窗、下載進度(wgt更新)
這款插件是我自己一個人完整使用下來的奧,作爲一個前端小白,這真的是一件令我開心的事。哈哈。自信心來源於積累。加油,早日成爲大神。
第一步:下載插件
下載後解壓如下:
下載依賴request.js文件
下載後解壓如下:
第二步:導入到app中
放置文件路徑爲:static/common中,由於公司有規定,所以文件夾命名統一改爲小寫。
第三步:給後端同事說需要的內容
後臺返給我的數據結構:
這個數據結構中有一個是跟檢查更新插件有點區別的。
forceUpdate
:true或false,改爲了forceUpdate
:1或2;這個需要將所有的forceUpdate
的判斷條件:
if(forceUpdate == 1)
或者if(forceUpdate == 2)
;versionCode:inf.versionCode,version:inf.version
插件使用需要注意的地方彙總
插件很好,需要注意的點:
- 插件引用了另一插件(request),需要一併導入:https://ext.dcloud.net.cn/plugin?id=822
- 需要修改插件(appupdate)引用路徑 js_sdk/zhouWei_APPUpdate/APPUpdate.js文件裏 import $http from ‘@/config/requestConfig.js’; => import $http from ‘@/js_sdk/zhouWei-request/requestConfig.js’;
- App.vue裏 import的時候,也需要注意路徑
- 服務器返回的數據結構
{ "success": true,
"data": {
"versionCode": "126",
"versionName": "1.2.6",
"versionInfo": "本次更新內容: 1、初始版本a", // 內容以空格換行
"forceUpdate": true,
"downloadUrl": "http://domain.com/package\xxx_1.2.3.apk"
}
}
實際後臺返給我的數據格式爲:
{
"createTime": "2020-05-27 15:24:09",
"updateTime": "2020-05-27 15:46:53",
"id": "1265544302201802752",
"userId": "1",
"isActive": 1,
"versionCode": 105,
"versionName": "v1.05",
"versionInfo": "1:新增功能a\n2:優化功能b",
"forceUpdate": 1,
"platform": 1,
"updateType": 1,
"startTime": "2020-05-02 00:00:00",
"downloadUrl": "http://localhost:8081/sy",
"incrementDownloadUrl": "http://localhost:8081/s"
}
有兩點區別:
5. forceUpdate
強制更新
6. 有兩種下載鏈接,全量下載與增量下載。全量下載是代表有些版本的更新迭代必須要全量更新纔可以,而有些版本的更新是部分更新即可,這種叫做增量更新。
後臺給的判斷依據是:當前的版本號與後臺的版本號進行比較,如果版本號差距爲1,則優先下載增量下載,如果沒有增量下載鏈接,則使用全量下載鏈接進行下載。
requestNewVersion(version,platformType).then(res=>{
//如果res有值,則代表是有新版本的,否則提示當前無新版本
if (res) {
//如果當前版本號與後臺更新的版本號差距爲1並且有增量鏈接的情況下,選擇增量鏈接下載,否則選擇全量更新
if(res.versionCode - version == 1 && res.incrementDownloadUrl){
res.downloadUrl = res.incrementDownloadUrl;
callback && callback(res);
}else{
callback && callback(res);
}
} else {
uni.showToast({
title: "暫無新版本",
icon: "none"
});
}
})
彙總:
注意路徑的引入位置;在調用接口的時候,可以改爲自己的格式進行調用;注意數據格式是否與以上格式完全一致,如果不一致,需要適當做修改。
最終的顯示界面如下: