uni.downloadFile({
url: res.data.wgtUrl,
success: (downloadResult) => {
console.log(123)
console.log(downloadResult)
if (downloadResult.statusCode === 200) {
console.log(downloadResult)
console.log(downloadResult.tempFilePath)
plus.runtime.install(downloadResult.tempFilePath, {
force: false
}, function() {
console.log('install success...');
plus.runtime.restart();
}, function(e) {
console.log('install fail...' +JSON.stringify(e));
})
}
}
});```
- 发布:2021-05-12 15:28
- 更新:2021-05-12 15:53
- 阅读:632
产品分类: HbuilderX
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win 10
HBuilderX版本号: 2.8.13
App下载地址或H5⽹址: https://lianheit-static.oss-cn-shenzhen.aliyuncs.com/huanbao/apk/huanbao.apk
示例代码:
操作步骤:
检查更新代码
AndroidCheckUpdate() {
var that = this;
uni.request({
url: that.$common.serverUrl + 'system_base_data/get_apk_version', //获取最新版本号
method: 'GET',
data: {},
success: res => {
console.log(res)
var locversion = uni.getStorageSync("version");
var sysversion = res.data.version;
var arr1 = locversion.split('.');
var arr2 = sysversion.split(".");
if ((arr1[0] != arr2[0]) || (arr1[1] != arr2[1])) {
uni.showToast({
title: '有新的版本发布,程序已启动自动更新。新版本下载完成后将自动弹出安装程序。',
mask: false,
duration: 5000,
icon: "none"
});
var dtask = plus.downloader.createDownload(res.data.url, {}, function(d, status) {
// 下载完成
if (status == 200) {
plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, {}, function(error) {
uni.showToast({
title: '安装失败',
mask: false,
duration: 1500
});
})
} else {
uni.showToast({
title: '更新失败',
mask: false,
duration: 1500
});
}
});
dtask.start();
} else if (arr1[2] != arr2[2]) {
console.log('热更新')
uni.downloadFile({
url: res.data.wgtUrl,
success: (downloadResult) => {
console.log(123)
console.log(downloadResult)
if (downloadResult.statusCode === 200) {
console.log(downloadResult)
console.log(downloadResult.tempFilePath)
plus.runtime.install(downloadResult.tempFilePath, {
force: false
}, function() {
console.log('install success...');
plus.runtime.restart();
}, function(e) {
console.log('install fail...' +JSON.stringify(e));
})
}
}
});
} else {
var autoLogin = uni.getStorageSync("autoLogin");```
检查更新代码
AndroidCheckUpdate() {
var that = this;
uni.request({
url: that.$common.serverUrl + 'system_base_data/get_apk_version', //获取最新版本号
method: 'GET',
data: {},
success: res => {
console.log(res)
var locversion = uni.getStorageSync("version");
var sysversion = res.data.version;
var arr1 = locversion.split('.');
var arr2 = sysversion.split(".");
if ((arr1[0] != arr2[0]) || (arr1[1] != arr2[1])) {
uni.showToast({
title: '有新的版本发布,程序已启动自动更新。新版本下载完成后将自动弹出安装程序。',
mask: false,
duration: 5000,
icon: "none"
});
var dtask = plus.downloader.createDownload(res.data.url, {}, function(d, status) {
// 下载完成
if (status == 200) {
plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, {}, function(error) {
uni.showToast({
title: '安装失败',
mask: false,
duration: 1500
});
})
} else {
uni.showToast({
title: '更新失败',
mask: false,
duration: 1500
});
}
});
dtask.start();
} else if (arr1[2] != arr2[2]) {
console.log('热更新')
uni.downloadFile({
url: res.data.wgtUrl,
success: (downloadResult) => {
console.log(123)
console.log(downloadResult)
if (downloadResult.statusCode === 200) {
console.log(downloadResult)
console.log(downloadResult.tempFilePath)
plus.runtime.install(downloadResult.tempFilePath, {
force: false
}, function() {
console.log('install success...');
plus.runtime.restart();
}, function(e) {
console.log('install fail...' +JSON.stringify(e));
})
}
}
});
} else {
var autoLogin = uni.getStorageSync("autoLogin");```
预期结果:
..
..
实际结果:
..
..
bug描述:
首先,我apk版本是1.10.85
2021年1月份我热更新到1.10.90这个版本
现在五月份了,我想更新一个版本,但是没有任何反应。所以:1.10.90热更新——>1.10.91 失败
然后我把手机上原来的app卸了,下了个新的1.10.85,试图直接热更新到91的版本:1.10.85——>1.10.91 失败
然后我把wgt版本退回到1.10.90版本,让后台把接口调取的版本也改回了1.10.90版本的。手机上的85版本app再打开:1.10.85——>1.10.90 成功
昨天我在基座上运行了一下,报错 "code":-1205,"message":"WGT安装包中manifest.json文件的version版本不匹配" 基座上1.10.90热更新——>1.10.91 失败
然后我现在为了截图试图重现这个报错,它又运行成功了。可以对照图一和图二,打印出来的的东西是能明确看到install success
所以现在我在基座版本为1.10.90如图3的时候,在wgt版本为1.10.91,后台接口返回1.10.91的时候,热更新成功了。看图四手机上基座截图版本号(此时我的hbuilder上页面里写的版本号是1.10.90的看图五,manifest上写的版本号也是1.10.90的看图3,所以只能是我的1.10.91的wgt成功安装覆盖了)。
另外,我把wgt包下下来打开看过,里面的版本是1.10.91没问题。
所以我的app要怎么办?现在报错也看不到,就是热更新不了,一点反应都没有。