有谁写过版本更新?微信小程序更新机制线上没有生效
发布于 7 年前 作者 xiangming 11181 次浏览 来自 问答

微信小程序强制更新机制没有生效,在开发者工具模拟更新测的时候是生效了的,因为体验版和测试版小程序官方说测试不了,

线上版本更新了也没有生效

哪位大佬帮我看看哪里写的有问题

在app.js里面

onLaunch: function(options) {

//兼容

    if (compareVersion(version, ‘1.9.90’) >= 0) {

        this.checkForUpdateApp(); //1.9.90支持

    }

}

checkForUpdateApp() {

    const updateManager = wx.getUpdateManager()

    updateManager.onCheckForUpdate(function (res) {

        // 请求完新版本信息的回调

        console.log(res.hasUpdate)

    })

    

    updateManager.onUpdateReady(function () {

        wx.showModal({

        title: ‘更新提示’,

        content: ‘新版本已经准备好,是否重启应用?’,

        success(res) {

            if (res.confirm) {

            updateManager.applyUpdate()

            }

         }

        })

    })

    

    updateManager.onUpdateFailed(function () {

    // 新版本下载失败

    })

},

3 回复

compareVersion这个函数写用的官方给的

//兼容,版本比较

var compareVersion =(v1, v2)=>{

    v1 = v1.split(’.’)

    v2 = v2.split(’.’)

    const len = Math.max(v1.length, v2.length)

    

    while (v1.length < len) {

    v1.push(‘0’)

    }

    while (v2.length < len) {

    v2.push(‘0’)

    }

    

    for (let i = 0; i < len; i++) {

    const num1 = parseInt(v1[i])

    const num2 = parseInt(v2[i])

    

    if (num1 > num2) {

    return 1

    } else if (num1 < num2) {

    return -1

    }

    }

    

    return 0

}

upDataApp: function () {//版本更新
   if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager();
updateManager.onCheckForUpdate(function (res) {
if (res.hasUpdate) { // 请求完新版本信息的回调
               updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success: function (res) {
if (res.confirm) {// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                               updateManager.applyUpdate()
}
}
})
});
updateManager.onUpdateFailed(function () {
wx.showModal({// 新的版本下载失败
                       title: '已经有新版本了哟~',
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
})
})
}
})
} else {
wx.showModal({// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
           title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
       })
}
},

我是在app.js的onShow()里调用这个方法是可以的

请问楼主解决了吗?? 我在开发者工具上模拟的时候放在onLaunch里面没有执行,放在onShow里面是可以的

回到顶部