uniapp检查更新并安装
文章描述:
当用户点击检查更新的时候请求接口获取最新版本,根据与当前版本的对比进行更新
data里面version是版本号
export default {
data:function(){
return{
version:1
}
},
onLoad: function () {
uni.getSystemInfo({
success:(res) => {
console.log(res.platform);
//检测当前平台,如果是安卓则启动安卓更新
if(res.platform=="android"){
this.AndroidCheckUpdate();
}
}
})
},
methods: {
AndroidCheckUpdate:function(){
var _this=this;
uni.request({
url: 'http://xxxx.com/version.txt',
method: 'GET',
data: {},
success: res => {
if(res.data>this.version){
if(plus.networkinfo.getCurrentType()!=3){
uni.showToast({
title: '有新的版本发布,检测到您目前非Wifi连接,为节约您的流量,程序已停止自动更新,将在您连接WIFI之后重新检测更新。',
mask: false,
duration: 5000,
icon:"none"
});
return;
}
uni.showToast({
title: '有新的版本发布,检测到您目前为Wifi连接,程序已启动自动更新。新版本下载完成后将自动弹出安装程序。',
mask: false,
duration: 5000,
icon:"none"
});
var dtask = plus.downloader.createDownload( "http://xxxx.com/app.apk", {}, 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();
}
},
fail: () => {},
complete: () => {}
});
},
}
}
安装
plus.runtime.install(//安装
downloadResult.tempFilePath, {
orce: true
},
function(res) {
utils.showToast('更新成功,重启中');
cache.setCache('version',version)
plus.runtime.restart();
}
);
发布时间:2022/05/11
发表评论