2023年11月26日发(作者:)
⼩程序版本⾃动更新的实现
涉及到微信⼩程序开发的⼩伙伴们,相信⼀定会遇到新版本发布后,旧版本⽆法⾃动更新的困扰.
我之前进⾏开发的时候:
- ⾸先是因为在今年的 3、4⽉份进⾏⼩程序的初次接触;
- 但是⽹上也没搜到相关的解决⽅案;
- 最笨的⽅法就是,删除⼩程序后再重新搜索打开就好;
- 然后,记不清从哪⾥看到的信息;
- ⼤概意思是:⼩程序的更新机制会⾃动检测,根据⼿机的缓存程度不同,⼀般最迟两个⼩时就能⾃动替换
- 所以就有点不了了之了
(真实情况是,在之前进⾏版本发布后,有的iphone⼿机,即便⼀天之后进⼊,依然是旧版本,根本不会⾃动更新替换好吧)
- 今天⽆意中⼜想到这个问题,再进⾏百度,发现很多道友给出解决⽅案了;
- 我猜测是这段时间官⽅进⾏了功能补充,亦或者是道友们的深层挖掘吧;
- 在此进⾏⼀下整理,希望能帮到更多的朋友...
实现⽅案
⾸先,你必须要了解⼀下
然后根据⽂档指导,⾃然⽽然就会进⼊到 的介绍与使⽤
我根据官⽅提供的⽰例及其他道友的⽂章参考,最后进⾏了如下代码整合 : >>>
/**
* 检测当前的⼩程序
* 是否是最新版本,是否需要下载、更新
*/
function checkUpdateVersion() {
//创建 UpdateManager 实例
const updateManager = ateManager();
//检测版本更新
kForUpdate(function(res) {
// 请求完新版本信息的回调
if (ate) {
//监听⼩程序有版本更新事件
teReady(function() {
dal({
title: '更新提⽰',
content: '新版本已经准备好,是否重启应⽤?',
success(res) {
if (m) {
// 新的版本已经下载好,调⽤ applyUpdate 应⽤新版本并重启
pdate();
}
}
})
})
teFailed(function() {
// 新版本下载失败
dal({
title: '已经有新版本咯~',
content: '请您删除当前⼩程序,到微信 “发现-⼩程序” 页,重新搜索打开呦~',
})
})
}
})
}
具体使⽤
根据⼩程序的运⾏机制,适合在启动时就进⾏版本检测的操作
所以,可以在 的 ⽅法中进⾏调⽤ 上⾯的
onLaunch()checkUpdateVersion()
运⾏效果截图:
Tips:
1. ⼩程序开发版/体验版没有「版本」概念,所以⽆法在开发版/体验版上测试更版本更新情况
2. 准确来讲,版本⾃动更新的⽅法越早进⾏补充越合理,
尤其适合前期使⽤⼈数较少的时候就做补充
以避免后期使⽤⼈数太多时⽽旧版本依然⽆法检测更新及时替换的情况
补充:
考虑再三,为了版本的统⼀化,当然是建议⼩程序可以⾃动更新,所以升级⼀下代码如下:
建议可以对⽐两种写法,找找不同...
/**
* 检测当前的⼩程序
* 是否是最新版本,是否需要下载、更新
*/
function checkUpdateVersion() {
//判断微信版本是否 兼容⼩程序更新机制API的使⽤
if (e('getUpdateManager')) {
//创建 UpdateManager 实例
const updateManager = ateManager();
//检测版本更新
kForUpdate(function(res) {
// 请求完新版本信息的回调
if (ate) {
//监听⼩程序有版本更新事件
teReady(function() {
//TODO 新的版本已经下载好,调⽤ applyUpdate 应⽤新版本并重启 ( 此处进⾏了⾃动更新操作)
pdate();
})
teFailed(function() {
// 新版本下载失败
dal({
title: '已经有新版本喽~',
content: '请您删除当前⼩程序,到微信 “发现-⼩程序” 页,重新搜索打开哦~',
})
})
}
})
} else {
//TODO 此时微信版本太低(⼀般⽽⾔版本都是⽀持的)
dal({
title: '溫馨提⽰',
content: '当前微信版本过低,⽆法使⽤该功能,请升级到最新微信版本后重试。'
})
}
}


发布评论