自学内容网 自学内容网

uniapp 在线更新应用

在线更新应用及进度条显示

1.比较现安装手机中的apk 与线上apk的版本

getVersion(){
var newVersion=uni.getStorageSync("newVersion").split(".")
var version=plus.runtime.version.split(".") // 获取手机安装的版本
var versionNum="",newVersionNum=""
for(var i=0;i<version.length;i++){
versionNum+=version[i]
}
for(var i=0;i<newVersion.length;i++){
newVersionNum+=newVersion[i]
}
if(versionNum<newVersionNum){
this.chooseUpApp()
}
},

2.选择android的方式安装还是apple的testFligt方式安装

chooseUpApp(){
uni.showModal({
    title: '提示',
    content: plus.os.name == 'Android'?'检测到有最新版本,是否下载!':'检测到有最新版本,是否去TestFlight下载!',
    success:(res)=> {
        if (res.confirm) {
if(plus.os.name == 'Android'){
this.isUpApp=true
this.upApp()
}else{
plus.runtime.launchApplication({ action:this.upUrl}, function(e) {
uni.showToast({
icon:"none",
title:"请确认手机安装了TestFlight"
})
console.log('Open system default browser failed: ' + e.message);  
});  
}
        } else if (res.cancel) {
            console.log('用户点击取消');
        }
    }
});
},

3.安装apk,并显示进度条

upApp(){//下载APP
var downloadTask=uni.downloadFile({
url:this.upUrl,
complete(res){
console.log(res)
if(res.statusCode==200){
plus.runtime.install(res.tempFilePath, {
force: false
}, (e) => {
this.isUpApp=false
plus.runtime.restart();
}, (e) => {
console.log(e);
this.isUpApp=false
uni.showToast({
title: '安装升级包失败',
icon: 'none'
})
});
}
}
})
this.progress=0
// console.log(downloadTask)
downloadTask.onProgressUpdate((res) => { //监听下载进度变化
console.log(res)
if(this.progress!=res.progress){
this.progress=res.progress
// console.log('下载进度' + res.progress);
// console.log('已经下载的数据长度' + res.totalBytesWritten);
// console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
}
    // 测试条件,取消下载任务。
});
},


原文地址:https://blog.csdn.net/qq_37550440/article/details/126230632

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!