uniapp 電商app 版本更新插件的詳細使用步驟

DCLOUD插件市場——APP版本更新、強制更新、漂亮彈窗、下載進度(wgt更新)

APP版本更新、強制更新、漂亮彈窗、下載進度(wgt更新)

這款插件是我自己一個人完整使用下來的奧,作爲一個前端小白,這真的是一件令我開心的事。哈哈。自信心來源於積累。加油,早日成爲大神。

第一步:下載插件

在這裏插入圖片描述
下載後解壓如下:
在這裏插入圖片描述

下載依賴request.js文件
在這裏插入圖片描述
下載後解壓如下:
在這裏插入圖片描述

第二步:導入到app中

放置文件路徑爲:static/common中,由於公司有規定,所以文件夾命名統一改爲小寫。

在這裏插入圖片描述
在這裏插入圖片描述

第三步:給後端同事說需要的內容

在這裏插入圖片描述

在這裏插入圖片描述
後臺返給我的數據結構:
在這裏插入圖片描述
這個數據結構中有一個是跟檢查更新插件有點區別的。

  1. forceUpdate:true或false,改爲了forceUpdate:1或2;這個需要將所有的forceUpdate的判斷條件:
    if(forceUpdate == 1)或者 if(forceUpdate == 2)
  2. versionCode:inf.versionCode,version:inf.version
    在這裏插入圖片描述
    在這裏插入圖片描述

插件使用需要注意的地方彙總

插件很好,需要注意的點:

  1. 插件引用了另一插件(request),需要一併導入:https://ext.dcloud.net.cn/plugin?id=822
  2. 需要修改插件(appupdate)引用路徑 js_sdk/zhouWei_APPUpdate/APPUpdate.js文件裏 import $http from ‘@/config/requestConfig.js’; => import $http from ‘@/js_sdk/zhouWei-request/requestConfig.js’;
  3. App.vue裏 import的時候,也需要注意路徑
  4. 服務器返回的數據結構
{ "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"
		});
	}
})

彙總:
注意路徑的引入位置;在調用接口的時候,可以改爲自己的格式進行調用;注意數據格式是否與以上格式完全一致,如果不一致,需要適當做修改。

最終的顯示界面如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章