真机拿不到,开发者工具可以。方法如下:已经在app.js的onLoad中调用。
autoUpdate: function () {
var self = this
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
// 检查小程序是否有新版本发布
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本的信息回调
if (res.hasUpdate) {
wx.showModal({
title: '更新提示',
content: '检查到新版本,是否下载新版本并重启小程序?',
success: function (res) {
if (res.confirm) {
// 下载
self.downloadAndUpdate(updateManager)
} else if (res.cancel) {
// 点击取消,做强制更新操作
wx.showModal({
title: '温馨提示',
content: '必须强制更新哦,旧版本无法正常使用',
showCancel: false,//隐藏取消按钮
confirmText: '确定更新',
success: function (res) {
if (res.confirm) {
// 再次调用下载,并重启
self.downloadAndUpdate(updateManager)
}
}
})
}
}
})
}
})
} else {
// 增加用户体验,给出友好提示
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级后重试。'
})
}
},
/**
* 下载新版本并重启
*/
downloadAndUpdate: function (updateManager) {
var self = this
wx.showLoading();
// 监听小程序有版本更新事件,客户端主动触发
updateManager.onUpdateReady(function () {
wx.hideLoading();
// 新版本下载好,调用applyUpdate
updateManager.applyUpdate()
})
// 监听小程序更新失败事件
updateManager.onUpdateFailed(function () {
wx.showModal({
title: '已经有新版了哦',
content: '请你删除当前小程序,进行升级哦'
})
})
}
不会。升级不会删除本地存储。
storage是设备本地存储,各个设备间并不会自动同步。
开发者工具上有的,不代表真机上也会有。需要本地设备先set后才能get到,不然就是没有的。
applyUpdate后很多人碰到storage被清理的情况,重新进入后会恢复
updateManager.applyUpdate()重启后,读取不到之前的本地缓存? | 微信开放社区
https://developers.weixin.qq.com/community/develop/doc/000660ec5a8e502d3399d0c6f51c00?highline=applyUpdate%20s