uni-app App整包升级检测
uni-app App资源热更新
在App.vue页面
<script>
export default {
onLaunch: function() {
//#ifdef APP-PLUS
var uuid = plus.device.uuid;
let type = 0
switch(uni.getSystemInfoSync().platform){
case 'android':
type = 1
break;
case 'ios':
type = 2
console.log('运行iOS上')
break;
default:
console.log('运行在开发者工具上')
break;
}
let _t = this
plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
// console.log(widgetInfo,'plus.runtime')
let version = widgetInfo.version
let url = '/api/v1/user/version'
_t.$u.post(url, {
type:type,
}).then(res => {
if(res.code ===0){
// return
console.log(res,'res')
if(res.data.version>version){
uni.showModal({
title: '更新提示',
content: res.data.update_content,
confirmText:'立即更新',
cancelText:'暂不更新',
success: function (con) {
if (con.confirm) {
console.log(type,'type')
if(type == 1){
var showLoading = plus.nativeUI.showWaiting("正在下载");
const downloadTask = uni.downloadFile({
url: res.data.download_url, //仅为示例,并非真实的资源
success: (res) => {
if (res.statusCode === 200) {
console.log('下载成功');
plus.runtime.install(res.tempFilePath, {
force: false
}, function() {
console.log('install success...');
plus.runtime.restart();
}, function(e) {
console.error('install fail...');
});
// uni.hideLoading();
}
}
});
downloadTask.onProgressUpdate((res) => {
showLoading.setTitle(" 正在下载" + res.progress + "% ");
console.log('下载进度' + res.progress);
// 测试条件,取消下载任务。
if (res.progress == 20) {
plus.nativeUI.closeWaiting();
// downloadTask.abort(); //暂停下载
}
});
}else if(type == 2){
plus.runtime.launchApplication({
// action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`, //苹果应用市场链接
action:'https://apps.apple.com/cn/app/%E7%9F%B3%E7%9F%B3%E7%B2%BE%E9%80%9A/id1533412973'
}, function(e) {
console.log('Open system default browser failed: ' + e.message);
});
}
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
return
}else{
return
}
},err =>{
console.log(err,'err')
})
});
//#endif
},
onShow: function() {
},
onHide: function() {
}
}
</script>
<style lang="scss">
</style>