appUpdatePackage(url) {
// ios平台不允许这样更新,所以我们需要跳转到appstore进行更新
if (uni.getSystemInfoSync().platform === 'ios') {
let appleId = “”
plus.runtime.launchApplication({
action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
}, function(e) {
console.log('跳转报错: ' + e.message);
});
} else {
// 构建了下载任务,但此时并未开始下载
const dtask = plus.downloader.createDownload(url, {},
(downloadResult, status) => {
if (status === 200) {
plus.runtime.install(downloadResult.filename, {
force: true
},
function() {
setTimeout(() => {
uni.showModal({
title: '更新提示',
content: '更新完毕是否需要重启',
success: function(res) {
if (res.confirm) {
plus.runtime.restart(); // 安装完成后重启应用
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}, 2000)
},
function(e) {
uni.showToast({
icon: 'none',
title: '安装失败:' + e.message
})
});
}
}
);
dtask.addEventListener("statechanged", function(task, status) {
if (task.state == 3) {
uni.$emit('updateProgress', {
progress: Number(((task.downloadedSize / task.totalSize) * 100).toFixed(2))
})
}
})
dtask.start();
}
},

- 发布:2024-08-12 08:49
- 更新:2024-08-12 08:55
- 阅读:220
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 1
HBuilderX类型: 正式
HBuilderX版本号: 4.24
手机系统: Android
手机系统版本号: Android 15
手机厂商: 华为
手机机型: 华为meat60
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
App下载地址或H5⽹址: https://ysmarket.obs.cn-east-3.myhuaweicloud.com/images/2024-08-09/6d038d53-224e-4447-8edf-UNI__5636277__20240809232107.apk
示例代码:
操作步骤:
appUpdatePackage(url) {
// ios平台不允许这样更新,所以我们需要跳转到appstore进行更新
if (uni.getSystemInfoSync().platform === 'ios') {
let appleId = 6503031347
plus.runtime.launchApplication({
action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
}, function(e) {
console.log('跳转报错: ' + e.message);
});
} else {
// 构建了下载任务,但此时并未开始下载
const dtask = plus.downloader.createDownload(url, {},
(downloadResult, status) => {
if (status === 200) {
plus.runtime.install(downloadResult.filename, {
force: true
},
function() {
setTimeout(() => {
uni.showModal({
title: '更新提示',
content: '更新完毕是否需要重启',
success: function(res) {
if (res.confirm) {
plus.runtime.restart(); // 安装完成后重启应用
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}, 2000)
},
function(e) {
uni.showToast({
icon: 'none',
title: '安装失败:' + e.message
})
});
}
}
);
dtask.addEventListener("statechanged", function(task, status) {
if (task.state == 3) {
// console.log(((task.downloadedSize/task.totalSize)*100).toFixed(2),'task,status')
uni.$emit('updateProgress', {
progress: Number(((task.downloadedSize / task.totalSize) * 100).toFixed(2))
})
}
})
// 执行安装包下载
dtask.start();
}
},
appUpdatePackage(url) {
// ios平台不允许这样更新,所以我们需要跳转到appstore进行更新
if (uni.getSystemInfoSync().platform === 'ios') {
let appleId = 6503031347
plus.runtime.launchApplication({
action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
}, function(e) {
console.log('跳转报错: ' + e.message);
});
} else {
// 构建了下载任务,但此时并未开始下载
const dtask = plus.downloader.createDownload(url, {},
(downloadResult, status) => {
if (status === 200) {
plus.runtime.install(downloadResult.filename, {
force: true
},
function() {
setTimeout(() => {
uni.showModal({
title: '更新提示',
content: '更新完毕是否需要重启',
success: function(res) {
if (res.confirm) {
plus.runtime.restart(); // 安装完成后重启应用
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}, 2000)
},
function(e) {
uni.showToast({
icon: 'none',
title: '安装失败:' + e.message
})
});
}
}
);
dtask.addEventListener("statechanged", function(task, status) {
if (task.state == 3) {
// console.log(((task.downloadedSize/task.totalSize)*100).toFixed(2),'task,status')
uni.$emit('updateProgress', {
progress: Number(((task.downloadedSize / task.totalSize) * 100).toFixed(2))
})
}
})
// 执行安装包下载
dtask.start();
}
},
预期结果:
appUpdatePackage(url) {
// ios平台不允许这样更新,所以我们需要跳转到appstore进行更新
if (uni.getSystemInfoSync().platform === 'ios') {
let appleId = 6503031347
plus.runtime.launchApplication({
action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
}, function(e) {
console.log('跳转报错: ' + e.message);
});
} else {
// 构建了下载任务,但此时并未开始下载
const dtask = plus.downloader.createDownload(url, {},
(downloadResult, status) => {
if (status === 200) {
plus.runtime.install(downloadResult.filename, {
force: true
},
function() {
setTimeout(() => {
uni.showModal({
title: '更新提示',
content: '更新完毕是否需要重启',
success: function(res) {
if (res.confirm) {
plus.runtime.restart(); // 安装完成后重启应用
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}, 2000)
},
function(e) {
uni.showToast({
icon: 'none',
title: '安装失败:' + e.message
})
});
}
}
);
dtask.addEventListener("statechanged", function(task, status) {
if (task.state == 3) {
// console.log(((task.downloadedSize/task.totalSize)*100).toFixed(2),'task,status')
uni.$emit('updateProgress', {
progress: Number(((task.downloadedSize / task.totalSize) * 100).toFixed(2))
})
}
})
// 执行安装包下载
dtask.start();
}
},
appUpdatePackage(url) {
// ios平台不允许这样更新,所以我们需要跳转到appstore进行更新
if (uni.getSystemInfoSync().platform === 'ios') {
let appleId = 6503031347
plus.runtime.launchApplication({
action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
}, function(e) {
console.log('跳转报错: ' + e.message);
});
} else {
// 构建了下载任务,但此时并未开始下载
const dtask = plus.downloader.createDownload(url, {},
(downloadResult, status) => {
if (status === 200) {
plus.runtime.install(downloadResult.filename, {
force: true
},
function() {
setTimeout(() => {
uni.showModal({
title: '更新提示',
content: '更新完毕是否需要重启',
success: function(res) {
if (res.confirm) {
plus.runtime.restart(); // 安装完成后重启应用
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}, 2000)
},
function(e) {
uni.showToast({
icon: 'none',
title: '安装失败:' + e.message
})
});
}
}
);
dtask.addEventListener("statechanged", function(task, status) {
if (task.state == 3) {
// console.log(((task.downloadedSize/task.totalSize)*100).toFixed(2),'task,status')
uni.$emit('updateProgress', {
progress: Number(((task.downloadedSize / task.totalSize) * 100).toFixed(2))
})
}
})
// 执行安装包下载
dtask.start();
}
},
实际结果:
appUpdatePackage(url) {
// ios平台不允许这样更新,所以我们需要跳转到appstore进行更新
if (uni.getSystemInfoSync().platform === 'ios') {
let appleId = 6503031347
plus.runtime.launchApplication({
action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
}, function(e) {
console.log('跳转报错: ' + e.message);
});
} else {
// 构建了下载任务,但此时并未开始下载
const dtask = plus.downloader.createDownload(url, {},
(downloadResult, status) => {
if (status === 200) {
plus.runtime.install(downloadResult.filename, {
force: true
},
function() {
setTimeout(() => {
uni.showModal({
title: '更新提示',
content: '更新完毕是否需要重启',
success: function(res) {
if (res.confirm) {
plus.runtime.restart(); // 安装完成后重启应用
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}, 2000)
},
function(e) {
uni.showToast({
icon: 'none',
title: '安装失败:' + e.message
})
});
}
}
);
dtask.addEventListener("statechanged", function(task, status) {
if (task.state == 3) {
// console.log(((task.downloadedSize/task.totalSize)*100).toFixed(2),'task,status')
uni.$emit('updateProgress', {
progress: Number(((task.downloadedSize / task.totalSize) * 100).toFixed(2))
})
}
})
// 执行安装包下载
dtask.start();
}
},
appUpdatePackage(url) {
// ios平台不允许这样更新,所以我们需要跳转到appstore进行更新
if (uni.getSystemInfoSync().platform === 'ios') {
let appleId = 6503031347
plus.runtime.launchApplication({
action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
}, function(e) {
console.log('跳转报错: ' + e.message);
});
} else {
// 构建了下载任务,但此时并未开始下载
const dtask = plus.downloader.createDownload(url, {},
(downloadResult, status) => {
if (status === 200) {
plus.runtime.install(downloadResult.filename, {
force: true
},
function() {
setTimeout(() => {
uni.showModal({
title: '更新提示',
content: '更新完毕是否需要重启',
success: function(res) {
if (res.confirm) {
plus.runtime.restart(); // 安装完成后重启应用
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}, 2000)
},
function(e) {
uni.showToast({
icon: 'none',
title: '安装失败:' + e.message
})
});
}
}
);
dtask.addEventListener("statechanged", function(task, status) {
if (task.state == 3) {
// console.log(((task.downloadedSize/task.totalSize)*100).toFixed(2),'task,status')
uni.$emit('updateProgress', {
progress: Number(((task.downloadedSize / task.totalSize) * 100).toFixed(2))
})
}
})
// 执行安装包下载
dtask.start();
}
},
bug描述:
uniapp 华为整包更新微信三方登陆 无法使用
自定义基座可以使用
直接安装apk也可以使用
就是华为meat60上 整包更新无效 提示缺少业务配置 无法解决!!!!!!!!!
3***@qq.com (作者)
https://ysmarket.obs.cn-east-3.myhuaweicloud.com/images/2024-08-09/6d038d53-224e-4447-8edf-951a41def952-UNI5636277__20240809232107.apk
2024-08-12 09:08
3***@qq.com (作者)
https://ysmarket.obs.cn-east-3.myhuaweicloud.com/images/2024-08-09/517a8182-8708-47d3-b49e-304066ce725b-UNI5636277.wgt
2024-08-12 09:09
BoredApe
回复 3***@qq.com: 热更新不是整包更新吗?
2024-08-12 09:10
3***@qq.com (作者)
回复 BoredApe:对 更新的整包 wgt包是我多发的
2024-08-12 09:10
3***@qq.com (作者)
回复 BoredApe: 可以在应用市场下一个app 他会提示你更新 更新完之后 无法使用微信三方登陆
2024-08-12 09:12
BoredApe
回复 3***@qq.com: 这个链接也无法下载APK
2024-08-12 09:21
BoredApe
其他安卓机型正常吗?更新是否安装成功,app内的内容是否更新?
2024-08-12 09:22
3***@qq.com (作者)
回复 BoredApe安装成功 app内容已更新 但就是微信登陆那一块 报错 缺少业务参数配置
2024-08-12 14:21