美文网首页
uniapp App端如何更新

uniapp App端如何更新

作者: Pluto_7a23 | 来源:发表于2023-05-04 17:15 被阅读0次
<!-- #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

相关文章

网友评论

      本文标题:uniapp App端如何更新

      本文链接:https://www.haomeiwen.com/subject/hrgxsdtx.html