uniapp热更新
app.vue
console.log('App Launch');
let that = this
// #ifdef APP-PLUS
plus.runtime.getProperty(plus.runtime.appid, wgtinfo => {
let version = wgtinfo.version;
let type = '';
if (uni.getSystemInfoSync().platform == 'ios') {
type = 1;
} else if (uni.getSystemInfoSync().platform == 'android') {
type = 2;
}
cms_version({}).then(res => {
if (res.code == 200 && res.data.appVersion != version) {
if (res.data.isForcedUpdate == 1) {
that._install(res.data);
} else {
uni.showModal({
title: '提示',
content: '检测到系统有更新,是否升级?',
success: function(r) {
if (r.confirm) {
that._install(res.data);
} else if (r.cancel) {
console.log('用户点击取消');
}
}
});
}
}
else {
uni.showToast({
title: '已经是最新版本',
icon: 'none'
});
}
});
});
// #endif
methods:{
_install(item) {
//安装新版本
console.log('安装新版本', item);
plus.nativeUI.showWaiting('更新中...');
var url = item.downUrl; //更新包地址
// var url = "http://qlky.wisvalley.cn/file/apk/app.wgt"; //更新包地址
let that = this;
var dtask = plus.downloader.createDownload(url, {}, function(d, status) {
plus.nativeUI.closeWaiting();
if (status == 200) {
uni.showToast({
icon: 'none',
title: '正在准备环境,请稍后!',
duration: 2000
});
setTimeout(function() {
var path = d.filename; //下载apk
//plus.runtime.install()
plus.runtime.install(
path,
{
force: true
},
function() {
var str = '更新成功,请手动重启';
if (plus.os.name.toLowerCase() == 'ios') {
str = '更新成功,将自动重启';
}
plus.nativeUI.alert(str, function() {
if (plus.os.name.toLowerCase() == 'ios') {
plus.runtime.restart();
} else {
plus.runtime.quit();
}
});
},
function(ttt) {
plus.nativeUI.toast('更新失败', {
verticalAlign: 'center'
});
}
); // 自动安装apk文件
}, 100);
} else {
plus.downloader.clear();
plus.nativeUI.alert('资源包下载失败:' + status);
}
});
dtask.start();
},
}