//获取权限及访问后端接口是否更新

async update() {
            var _this = this;
            plus.runtime.getProperty(plus.runtime.appid, function(inf) {
                _this.versions=inf.version
            });    //获取版本号  由于本人plus.runtime.version   获取异常使用这样的
            setTimeout(async ()=>{
                let data={
                    type:'android',
                    version:this.versions
                }
                var banbenData = await this.$http.version(data);    //请求后端更新接口 
                plus.runtime.getProperty(plus.runtime.appid, function(inf) {   //如果接口没有参数需求,可以跳过第一步的获取版本号直接在当前运行
                    console.log(inf,'inf')
                    if(inf.version != banbenData.data.versions){
                        uni.showModal({
                            title: "发现新版本",
                            content: "确认下载更新",
                            success: (res) => {
                                if (res.confirm == true) {//当用户确定更新,执行更新方法
                                    _this.doUpData(banbenData.data.url);
                                }
                            }
                        })
                    }
                });
            },1000)
            
        },

//正在更新

doUpData(url) {
            uni.showLoading({
                title: '更新中……'
            });
            uni.downloadFile({
                //执行下载
                url: url, //下载地址
             success: downloadResult => {
                    //下载成功
                    uni.hideLoading();
                    if (downloadResult.statusCode == 200) {
                        uni.showModal({
                            title: '',
                            content: '更新成功,确定现在重启吗?',
                            confirmText: '重启',
                            confirmColor: '#EE8F57',
                            success: function(res) {
                                if (res.confirm == true) {
                                    plus.runtime.install(
                                        //安装
                                        downloadResult.tempFilePath,
                                        {
                                            force: true
                                        },
                                        function(res) {
                                            utils.showToast('更新成功,重启中');
                                            plus.runtime.restart();
                                        }
                                    );
                                }
                            }
                        });
                    }
                }
            });
        },

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐