<!-- #ifdef APP-PLUS -->
<view v-show="isupAppStatu" class="upAppBg">
<view class="upAppBox">
<view class="upAppBox_title">
发现新版本
<text >{{isupAppList.version}}</text>
</view>
<view v-show="updateprogress" style="width: 80%;margin-bottom: 30rpx;">
<progress :percent="updatesum" activeColor="red" stroke-width="8" />
</view>
<view @click="upApp" class="upAppBox_btn">
{{updateprogresstxt}}
</view>
</view>
</view>
<!-- #endif -->
onShow() {
let this_ = this
//#ifdef APP-PLUS
//发起http请求,res中包含安卓和ios最新版本号,更新描述等数据
getVersion().then(res => {
this.iosUrl = res.data.iosUrl //ios更新地址
this.AndroidUrl = res.data.aUrl //安卓更新包
// // 需要区分ios和安卓(两者更新APP方式不一致)
if (/android/.test(uni.getSystemInfoSync().platform)) {
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
//获取当前版本的版本号跟接口返回的做对比
//strNumber() 这个方法只是吧 1.1.1 切换成111 用数字来进行对比 可以不用
const ver = this_.strNumber(inf.version); //测试
let androidV = this_.strNumber(res.data.androidV)
if (androidV > ver) {
uni.hideTabBar()//隐藏底部导航栏
// _this.isupAppList = res.data.android // 更新描述
this_.isupAppStatu = true // 显示更新提示框
}
})
}else if (/ios/.test(uni.getSystemInfoSync().platform)){
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
const ver = this_.strNumber(inf.version); //测试
let androidV = this_.strNumber(res.data.v)
if (androidV > ver) {
uni.hideTabBar()//隐藏底部导航栏
// _this.isupAppList = res.data.ios // 更新描述
this_.isupAppStatu = true // 显示更新提示框
}
})
}
})
//#endif
},
methods:{
// 更新APP
upApp(){
// 防止用户多次点击
let this_ = this
if (this.updateprogress) {
return
} else {
if (/android/.test(uni.getSystemInfoSync().platform)) {
this_.updateprogress = true //显示进度条
this_.updateprogresstxt = '正在更新...' //更改按钮文字
// console.log(this.isupAppList)
const downloadTask = uni.downloadFile({
url: this_.AndroidUrl,
success: (res) => {
if (res.statusCode === 200) {
this_.updateprogress = false
plus.runtime.install(res.tempFilePath); // 自动安装apk文件
plus.runtime.quit();
} else {
this_.updateprogress = false
}
}
})
// 监控下载apk的进度
downloadTask.onProgressUpdate((res) => {
this_.updatesum = res.progress
});
}else {
// 苹果更新需要携带参数打开APPStore跳转到上架的应用上
var urlStr = encodeURI(this_.iosUrl)
plus.runtime.openURL(urlStr, function(res) {})
}
}
},
}
原文 : https://blog.csdn.net/long19981231/article/details/120449805