钉钉小程序版本更新问题
-
因为小程序并非发布后用户立即更新,而是要等待用户冷启动或者等待48小时后更新,于是在开发中使用了
UpdateManager
方法来引导用户强制更新,使用方法:uplodeMethod() { dd.showLoading({ content: '正在获取新版本中...', }); let updateManager = null updateManager = dd.getUpdateManager() updateManager.onCheckForUpdate(function (res) { if (res.hasUpdate) { updateManager.onUpdateReady(function (ret) { console.log(ret.version) // 更新版本号 dd.hideLoading() dd.confirm({ title: '更新提示', content: '新版本已经准备好,是否重启应用?', success: function (res) { if (res.confirm) { updateManager.applyUpdate() } } }) }) } else { dd.hideLoading() dd.alert({ title: '已经是新版本了!', buttonText: '我知道了', success: () => {}, }) } dd.hideLoading() }) updateManager.onUpdateFailed(function () { dd.hideLoading() // 新版本下载失败 dd.alert({ title: '新版本下载失败!请稍后重试!', buttonText: '我知道了', success: () => {}, }) }) },
问题:
- 用户在点击更新后,如果并无新版本,在弹出框后,用户再次点击版本跟新,
updateManager.onCheckForUpdate()
方法将不再返回值,导致用户长时间处于等待更新中。 - 小程序调用一次
updateManager.onCheckForUpdate()
方法后,无论间隔长,第二次点击均不会返回res,导致无法操作,除非关闭小程序及钉钉后台,强制小程序冷启动,才能再次触发该方法并返回值。