定义检测版本与下载的事件
methods: {
// 获取当前版本号
// 检查是否安卓
isandroid() {
var that = this;
uni.getSystemInfo({
success: async (res) => {
if (res.platform == "android") {
let vurl='https://pcb.wttx56.cn/apk/sjv.json'
try{
let {data} = await Request(vurl)
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
const wgtVer = inf.version; //获取当前版本号
const version = plus.runtime.version;
// console.log(wgtVer,version);
if(version!==data.version){
that.AndroidCheckUpdate(data.url);
}
});
}catch(e){
console.log(e);
//TODO handle the exception
}
}
}
})
},
// 自动更新
AndroidCheckUpdate(url) {
var that = this;
uni.showToast({
title: '有新的版本发布,检测到您目前为Wifi连接,程序已启动自动更新。新版本下载完成后将自动弹出安装程序。',
mask: false,
duration: 5000,
icon: "none"
});
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();
},
}
外围建立获取事件
function Request(url){
return new Promise((resolve,rej)=>{
uni.request({
url,
success: (res) => {
resolve(res)
},
fail(e) {
rej(e)
}
})
})
}
最后在onLaunch执行
this.isandroid()