uni-app 实现APP的版本更新

在index.vue 中的onload方法里面或者app.vue中的onLaunch中添加如下 methods 部分:

本次在app.vue中添加

<script>
export default {
    onLaunch: function() {
        console.log('App Launch');
        var that = this;
        that.update()
    },
    onShow: function() {
        console.log('App Show');
    },
    onHide: function() {
        console.log('App Hide');
    },
    methods: {
        update() {
            var _this = this;
            uni.request({
                url: _this.websiteUrl+'/api/versions/',  //请求接口
                method: 'POST',
                success: result => {
                    console.log(1111111111, result)
                    if (result.data.code == 1000) {
                        plus.runtime.getProperty(plus.runtime.appid, function(inf) {
                            console.log("版本:", inf)
                            if(inf.version != result.data.latestVersion){
                                uni.showModal({
                                    title: "发现新版本",
                                    content: "确认下载更新",
                                    success: (res) => {
                                        if (res.confirm == true) {//当用户确定更新,执行更新
                                            _this.doUpData(result.data.appVersionPackage);
                                        }
                                    }
                                })
                            }
                        });
                    }
                },
            })
        },
         
        doUpData(appVersionPackage) {
            var _this = this;
            uni.showLoading({
                title: '更新中……'
            })
            uni.downloadFile({//执行下载
                url: _this.websiteUrl + appVersionPackage, //下载地址
                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();
                                        }
                                    );
                                }
                            }
                        });
                    }
                }
            });
        }
    }

};
</script>

<style>
    
/* 解决头条小程序组件内引入字体不生效的问题 */
/* #ifdef MP-TOUTIAO */
@import url("./common/icon.css")
@font-face {
    font-family: uniicons;
    src: url('/static/uni.ttf');
}
/* #endif */
</style>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。