uniapp 小程序版本自动更新

注意:代码是uniapp的,如果是微信小程序的话,要做出以下修改
1.微信小程序代码写在app.js,uniapp写在app.vue里
2.uni. 换成 wx.

话不多说,上代码,注释写的很详细了

onLaunch(options){
	function autoUpdate() {
        // 获取小程序更新机制兼容 
        if (uni.canIUse('getUpdateManager')) {
            const updateManager = uni.getUpdateManager()
            // 检查是否有新版本发布
            updateManager.onCheckForUpdate(function(res) {
                if (res.hasUpdate) {
                    //小程序有新版本,则静默下载新版本,做好更新准备
                    updateManager.onUpdateReady(function() {
                        uni.showModal({
                            title: '更新提示',
                            content: '新版本已经准备好,是否重启应用?',
                            success: function(res) {
                                if (res.confirm) {
                                    //新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                                    updateManager.applyUpdate()
                                } else if (res.cancel) {
                                    //如果需要强制更新,则给出二次弹窗,如果不需要,则这里的代码都可以删掉了
                                    uni.showModal({
                                        title: '温馨提示',
                                        content: '我们已经做了新的优化,请及时更新哦~',
                                        showCancel: false, //隐藏取消按钮,也可显示,取消会走res.cancel,然后从新开始提示
                                        success: function(res) {
                                            //第二次提示后,强制更新           
                                            if (res.confirm) {
                                                // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                                                updateManager.applyUpdate()
                                            } else if (res.cancel) {
                                                //重新回到版本更新提示
                                                autoUpdate()
                                            }
                                        }
                                    })
                                }
                            }
                        })
                    })
                      // 新的版本下载失败
                    updateManager.onUpdateFailed(function() {
                        uni.showModal({
                            title: '温馨提示',
                            content: '新版本已经上线,请您删除当前小程序,重新搜索打开',
                        })
                    })
                }
            })
        } else {
            // 提示用户在最新版本的客户端上体验
            uni.showModal({
                title: '温馨提示',
                content: '当前微信版本过低,可能无法使用该功能,请升级到最新版本后重试。'
            })
        }
	}			
	autoUpdate();
},

注意:
在开发和体验版无法测试版本更新
需要在开发者工具里,编译时选择"模拟更新编译"
uniapp 小程序版本自动更新_第1张图片
uniapp 小程序版本自动更新_第2张图片

你可能感兴趣的:(Uni-app,Wechart,小程序,vue.js)