小程序更新提示及操作指南:点击确定自动重启更新,点击取消关闭弹窗

2024-11-12
来源:网络整理

1、如图所示,当小程序新版本发布时,如果用户之前访问过该小程序,并通过打开的小程序进入(未手动删除),则会弹出此提示提醒用户更新新版本。用户点击确定自动重新开始更新,点击取消关闭弹窗不再更新。

= wx.()

.((资源){

// 请求新版本信息后回调

.log(解析)

})

.( () {

wx.({

: '更新提示',

:'新版本已准备就绪。您想重新启动应用程序吗? ',

(资源){

如果(解析){

// 新版本已下载,调用应用并重启新版本

.()

})

})

.( () {

// 新版本下载失败

})

2.官方demo仅提供最基本的更新提示,不处理异常。并且官方还表示该功能将在1.9.90基础库中支持。低版本需要兼容,所以最终代码需要完善。

另一方面,如果当前版本更新有较大调整,必须要求用户更新,那么可以在用户点击取消时在回调中给出提示,然后重新进入版本提示流程。如下图,在上面的更新提示中,如果用户点击取消,则会弹出如下弹窗。如果用户单击“确定”,版本将被更新。如果用户点击取消,则会再次调用上述更新提示。总之,用户更新后才能正常访问小程序(如非必要,建议谨慎使用)。

应用程序({

:(){

这。()

},

:(){

.log(新日期())

var self=这个

// 获取小程序更新机制的兼容性

如果(wx。('')){

= wx.()

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

.((资源){

// 请求新版本信息后回调

如果(解析){

//2.如果小程序有新版本,请静默下载新版本并准备更新。

.( () {

.log(新日期())

wx.({

: '更新提示',

:'新版本已准备就绪。您想重新启动应用程序吗? ',

:(资源){

如果(解析){

//3.新版本已下载,调用应用新版本并重启

.()

} else if (res.) {

//如果需要强制更新,则会弹出第二个弹窗。如果没有的话,这里的代码可以删除。

wx.({

: '温馨提醒~',

: '本次版本更新涉及新功能的增加,旧版本无法正常访问~',

:(资源){

自己。()

;

微信辅助源码_微信小程序辅助开发者_微信小程序510k辅助

//第二次提示后,强制更新

如果(解析){

// 新版本已下载,调用应用并重启新版本

.()

} else if (res.) {

//返回版本更新提示

自己。()

})

})

})

.( () {

// 新版本下载失败

wx.({

: '已经有新版本了~',

: '新版本已上线~请删除当前小程序重新搜索打开~',

})

})

})

} 别的 {

// 如果你想让用户在最新版本的客户端上体验你的小程序,可以这样提示

wx.({

: '暗示',

: '当前微信版本太低,无法使用此功能。请升级微信至最新版本后重试。 '

})

})

3.模拟测试更新版本:

在微信开发者工具上,可以通过“编译模式”下的“下次编译模拟更新”开关进行调试;

小程序开发版/体验版没有“版本”的概念,因此无法在开发版/体验版上测试版本更新;

对于开发者工具,您可以像这样验证测试:

单击编译模式设置下拉列表,然后单击“添加编译模式”。在自定义编译条件弹窗中,点击“下次编译时模拟更新”,然后点击“确定”,重新编译就OK了。

需要注意的是,该方法在模拟更新一次后就会失效。在再次测试之前,您仍然需要重置此编译模式。

4、在开发者工具上测试验证时,小程序界面加载五六秒后弹出更新提示弹窗。这是因为小程序检测到新版本后,会调用 .( ) 来更新版本。监控,此时客户端主动触发下载(无需开发者触发),下载成功后回调。也就是说,我们上面的更新提示弹窗是在小程序检测到新版本并完成新版本下载后才弹出的,所以有几秒的时间差。在这种情况下,就需要再次改进。至少小程序编译时检测到新版本时,应该先给出更新提示。至于下载新版本的准备工作,可以在用户点击确认按钮后进行。代码改造如下:

应用程序({

:(){

这。()

},

:(){

var self = 这个

// 获取小程序更新机制的兼容性

如果(wx。('')){

= wx.()

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

.((res) {

// 请求新版本信息后回调

如果(解析){

//检测到新版本,需要更新,并给出提示。

wx.({

: '更新提示',

:'已检测到新版本。您要下载新版本并重启小程序吗? ',

:(资源){

如果(解析){

//2.用户确认下载和更新小程序,小程序的下载和更新悄然进行。

微信小程序辅助开发者_微信小程序510k辅助_微信辅助源码

自己。()

} else if (res.) {

//用户点击取消按钮的处理。如果需要强制更新,则会给出二次弹窗。如果没有的话,这里的代码可以删除。

wx.({

: '温馨提醒~',

: '本次版本更新涉及新功能的增加,旧版本无法正常访问~',

:,//隐藏取消按钮

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

:(资源){

如果(解析){

//下载新版本并重新应用

自己。()

})

})

})

} 别的 {

// 如果你想让用户在最新版本的客户端上体验你的小程序,可以这样提示

wx.({

: '暗示',

: '当前微信版本太低,无法使用此功能。请升级微信至最新版本后重试。 '

})

},

/**

* 下载新版本小程序并重启应用

*/

:(){

var self=这个

wx.();

//静默下载并更新新版本的小程序

.( () {

wx.()

//新版本已下载,调用应用并重启新版本

.()

})

.( () {

// 新版本下载失败

wx.({

: '已经有新版本了~',

: '新版本已上线~请删除当前小程序重新搜索打开~',

})

})

})

如上,检测到小程序有新版本后,会弹窗提示用户下载新版本并重启小程序。用户点击确定按钮即可下载并更新新版本的小程序。为了方便调用,小程序的新版本下载和重启应用是分开打包的。

这样,从加载小程序到弹出版本更新弹窗,只需要调用新版本检测API并返回结果的时间(开发者工具测试需要2~3秒)。虽然还有一点延迟,但这也是目前唯一能做到的办法了。

5、总结:

综上所述,无论怎样,使用小程序版本更新检测功能都需要一定的时间(一两秒也不算短)。如果用户在检测到的两秒内进行了操作,则会出现更新提示。弹出窗口会打断用户的操作。但毕竟版本更新不频繁,所以这方面还是可以接受的。

另外,建议在下载新版本包的时候,让用户知道正在下载,然后下载完成后自动重启,这样整个过程会流畅很多。

整理完后,我整理了一张思维导图来帮助理解:

六、其他注意事项:

基本库最低版本设置:

如果不想判断API支持情况,可以设置小程序的最低版本支持。

打开小程序管理后台-设置-基础库最低版本设置。根据现有小程序的接入情况或者小程序官方提供的数据,设置一个比较流行的基础库版本即可,这样可以输入尽可能少的API。兼容性判断还可以提示用户更新微信版本,以支持小程序的正常运行,体验小程序的一些高级功能。

分享