uniapp App更新解决方法
最近项目碰到的app更新问题,安卓和iOS更新。
功能实现效果
安卓端:后台下载,自动弹出系统安装界面
iOS端:跳转 appStore app更新界面
1.获取用户手机平台
let platform = uni.getSystemInfoSync().platform;
2.获取用户当前app版本号和最新app版本号
let version = plus.runtime.version; //当前app版本号
let onlineVersion = '' //请求接口获取最新app版本号
this.$get({
url: 'xxx',
}).then(res => {
let onlineVersion = res.data.onlineVersion
});
3.比较版本号是否为最新版本
//version 1.0.1 onlineVersion 1.0.2
version = version.split('.').join(''); //101
onlineVersion = onlineVersion.split('.').join(''); //102
//比较两个版本号大小
4.根据不同手机平台
if (platform == 'android') {
var url = 'https://xxx/xxx.apk'; //安卓下载链接
var dtask = plus.downloader.createDownload(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 {
// 跳转苹果商城
let appleId = ''; //appid iOS可在appstore分享给好友,复制获取下载链接
plus.runtime.launchApplication(
{
action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
},
function(e) {
console.log(e.message);
}
);
}