2023年11月26日发(作者:)

微信⼩程序发布新版本时⾃动提⽰⽤户更新的⽅法

如图,当⼩程序发布新的版本后,⽤户如果之前访问过该⼩程序,通过已打开的⼩程序进⼊(未⼿动删除),则会弹出这个提

⽰,提醒⽤户更新新的版本。⽤户点击确定就可以⾃动重启更新,点击取消则关闭弹窗,不再更新。

官⽅给的⽰例代码:

const updateManager = ateManager()

kForUpdate(function (res) {

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

(ate)

})

teReady(function () {

dal({

title: '更新提⽰',

content: '新版本已经准备好,是否重启应⽤?',

success(res) {

var self=this

// 获取⼩程序更新机制兼容

if (e('getUpdateManager')) {

const updateManager = ateManager()

//1. 检查⼩程序是否有新版本发布

kForUpdate(function (res) {

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

if (ate) {

//2. ⼩程序有新版本,则静默下载新版本,做好更新准备

teReady(function () {

(new Date())

dal({

title: '更新提⽰',

content: '新版本已经准备好,是否重启应⽤?',

success: function (res) {

if (m) {

//3. 新的版本已经下载好,调⽤ applyUpdate 应⽤新版本并重启

pdate()

} else if () {

//如果需要强制更新,则给出⼆次弹窗,如果不需要,则这⾥的代码都可以删掉了

dal({

title: '温馨提⽰~',

content: '本次版本更新涉及到新的功能添加,旧版本⽆法正常访问的哦~',

success: function (res) {

date()

return;

//第⼆次提⽰后,强制更新

if (m) {

// 新的版本已经下载好,调⽤ applyUpdate 应⽤新版本并重启

pdate()

} else if () {

//重新回到版本更新提⽰

date()

}

}

})

}

}

})

})

teFailed(function () {

// 新的版本下载失败

dal({

需要注意的是,这种⽅式模拟更新⼀次之后就失效了,后边再测试仍需要对这种编译模式进⾏重新设置才可以。

更新提⽰有延迟?

在开发者⼯具上测试验证的时候,更新提⽰弹窗在⼩程序界⾯加载出来五六秒之后才弹出来,这是由于⼩程序在检测到有新版

本之后,调⽤进⾏版本更新监听,此时客户端主动触发下载(⽆需开发者触发),下载成功后回调。也就是说我们上边的更新

提⽰弹窗是在⼩程序检测到新版本并完成新版本下载之后弹出的,所以就有了这⼏秒的时间差。这样的话就很有必要进⾏再次

改善了,⾄少应该在⼩程序编译时检测到有新版本就应该先给出更新提⽰,⾄于新版本下载的准备⼯作,可以在⽤户点击确认

按钮之后进⾏,代码改造如下:

App({

onLaunch: function(options) {

dal({

title: '温馨提⽰~',

content: '本次版本更新涉及到新的功能添加,旧版本⽆法正常访问的哦~',

showCancel:false,//隐藏取消按钮

confirmText:"确定更新",//只保留确定更新按钮

success: function(res) {

if (m) {

//下载新版本,并重新应⽤

adAndUpdate(updateManager)

}

}

})

}

}

})

}

})

} else {

// 如果希望⽤户在最新版本的客户端上体验您的⼩程序,可以这样⼦提⽰

dal({

title: '提⽰',

content: '当前微信版本过低,⽆法使⽤该功能,请升级到最新微信版本后重试。'

})

}

},

/**

* 下载⼩程序新版本并重启应⽤

*/

downLoadAndUpdate: function (updateManager){

var self=this

其他注意事项:

基础库最低版本设置:

如果不想做API⽀持判断,那么可以给⼩程序设置最低版本⽀持。

打开⼩程序管理后台-设置-基础库最低版本设置,根据现有⼩程序的访问情况或者⼩程序官⽅提供的数据,设置⼀个⽐较⼤众

化的基础库版本就好了,这样就能进了尽量减少API兼容性判断,也能促使⽤户更新微信版本,以⽀持⼩程序正常运⾏,体验

⼩程序⼀些⾼级功能。

以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。