<!-- #ifdef APP-PLUS -->
<view v-show="isupAppStatu" class="upAppBg">
<view class="upAppBox">
<view class="upAppBox_title">
發(fā)現(xiàn)新版本
<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
//發(fā)起http請求隘击,res中包含安卓和ios最新版本號侍芝,更新描述等數(shù)據(jù)
getVersion().then(res => {
this.iosUrl = res.data.iosUrl //ios更新地址
this.AndroidUrl = res.data.aUrl //安卓更新包
// // 需要區(qū)分ios和安卓(兩者更新APP方式不一致)
if (/android/.test(uni.getSystemInfoSync().platform)) {
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
//獲取當(dāng)前版本的版本號跟接口返回的做對比
//strNumber() 這個方法只是吧 1.1.1 切換成111 用數(shù)字來進行對比 可以不用
const ver = this_.strNumber(inf.version); //測試
let androidV = this_.strNumber(res.data.androidV)
if (androidV > ver) {
uni.hideTabBar()//隱藏底部導(dǎo)航欄
// _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()//隱藏底部導(dǎo)航欄
// _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
}
}
})
// 監(jiān)控下載apk的進度
downloadTask.onProgressUpdate((res) => {
this_.updatesum = res.progress
});
}else {
// 蘋果更新需要攜帶參數(shù)打開APPStore跳轉(zhuǎn)到上架的應(yīng)用上
var urlStr = encodeURI(this_.iosUrl)
plus.runtime.openURL(urlStr, function(res) {})
}
}
},
}
原文 : https://blog.csdn.net/long19981231/article/details/120449805