uniapp 的程序打包的app时检测当前版本与最新版本不一致时提示下载,并安装新版本
可在 APP.vue 中调用检测版本更新的代码如下:
plus.nativeUI.showWaiting("检测更新...");
// 获取当前版本
plus.runtime.getProperty(plus.runtime.appid, (info) => {
var wgtVer = info.version;
//仅为示例,并非真实接口地址。
var checkUrl = "https://xiadmin.com/api/checkUrl";
// 新版apk的链接
var downloadApkUrl = "https://xiadmin.com/app-v3.apk";
uni.request({
url: checkUrl,
data: {
text: 'uni.request'
},
header: {
'custom-header': 'hello' //自定义请求头信息
},
success: (res) => {
var ios_version = res.data.data.ios_version;
var version = res.data.data.version;
var newVer = version;
console.log("检测更新成功,获取到的当前本号为:" + wgtVer);
console.log("检测更新成功,获取到的安卓版本号为:" + version);
console.log("检测更新成功,获取到的IOS版本号为:" + ios_version);
downloadApkUrl = downloadApkUrl+'/app'+version+'.apk';
plus.nativeUI.closeWaiting();
if (wgtVer && newVer && (wgtVer != newVer)) {
console.log("获取资源文件路径:"+downloadApkUrl);
plus.nativeUI.confirm("应用有新版本,是否立即下载更新?", function(event) {
if (event.index == 1) {
var dtask = plus.downloader.createDownload( downloadApkUrl, {}, function ( d, status ) {
// 下载完成
if ( status == 200 ) {
plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename),{},{},function(error){
uni.showToast({
title: '安装失败',
duration: 1500
});
})
} else {
uni.showToast({
title: '更新失败',
duration: 1500
});
}
});
dtask.start();
}
}, '提示', ['取消', '确认']);
} else {
plus.nativeUI.alert("无新版本可更新!");
}
}
});
})
return true;