个人案例
暂无发表的小程序案例
本地测试LocalStorage倒是没为空,不过错乱了。 好多问题重复了,这和小程序上的一个问题类似: https://developers.weixin.qq.com/community/develop/doc/0008e49ac6cd48efeb89286b151000?_at=1648096930511 版本变化后从服务器重拉一遍“缓存”信息
updateManager.applyUpdate 重启后将无法获得之前的本地数据缓存?如题,在updateManager.applyUpdate 重启小游戏后,取得的本地缓存不是之前的缓存,必须杀掉进程打开游戏才能获得原来的缓存。通过实验,返现updateManager.applyUpdate 重启后数据的存储域和原来的存储域个相互独立的两个域,这个怎么解决?
2022-03-24试了一下还可以复现,想了一个折中的办法,写在这里了: https://developers.weixin.qq.com/community/develop/doc/0008e49ac6cd48efeb89286b151000?_at=1648096930511 如果有试用了,请告诉我一下效果如果
updateManager.applyUpdate 重启后将无法获得之前的本地数据缓存?如题,在updateManager.applyUpdate 重启小游戏后,取得的本地缓存不是之前的缓存,必须杀掉进程打开游戏才能获得原来的缓存。通过实验,返现updateManager.applyUpdate 重启后数据的存储域和原来的存储域个相互独立的两个域,这个怎么解决?
2022-03-24这个问题有意思,试了一下,在模拟器中也可以复现,如下所示。 微信在为小程序启动准备运行环境时,其中有一项是准备一个新的进程,LocalStorage应该是跟着进程走了,一个进程一个本地缓存。当新版本强制启动时,是杀死了当前的进程,用下载好的新版本启动了新进程,之前进程里的缓存也就取不到了。 进程之间还不好共享缓存,且不说好不好做能不能实现;如果这样做了,安全性又受到了挑战,万一小程序A意外访问到了小程序B的缓存了怎么办。 所以想到一个妥协的解决办法,是不是可以这样: 机密信息不要写在LocalStorage中,能够写在本地缓存里的信息,一定非得要的冗余信息;本地缓存也设置一个版本信息,并且与小程序版本挂钩,当两者不一样时,也就是版本更新时,强制从服务器拉取一遍信息,然后再向本地重存一遍。这个过程就好比每次农药更新版本时,我们看到的那个进度条。 [图片]
强制更新无效编辑器里强制更新会有弹窗,但是实机没有 代码直接写在进游戏里的onload里面: //检查更新 var updateManager = wx.getUpdateManager(); updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 // console.log(res.hasUpdate) }) updateManager.onUpdateReady(function () { wx.showModal({ title: '更新提示', content: '新版本已经准备好,是否重启应用?', showCancel : false, success: function (res) { if (res.confirm) { // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 updateManager.applyUpdate() } } }) }) updateManager.onUpdateFailed(function () { // 新版本下载失败 })
2022-03-24遇到这种问题,可以检查这几步: 先在模拟器中确认强制更新代码没有问题,这个代码放在小程序App或Page的任何一个周期函数内执行没问题;真机调试,将小程序从最近访问列表中删除,按住,拖到底部的垃圾桶里。如果不行,从“我的小程序”中也删除,最不济,把微信卸载重装。这一步是为了触发冷启动;线上真机远程调试,看用户设备上的基础库版本是否低于1.9.90;
小程序强制更新无效?小程序线上版本,冷启动时,通过UpdateManager.onCheckForUpdate监听微信后台获取到的返回值总是false, 页面显示实际上已经是修改后的新版本内容,那么问题来了,小程序冷启动时候有自动更新机制,那么我什么情况下发版新版本时才能获取到返回值为true,是不是只有自动更新失败,才会监听到返回值为true的状态,进而进行强制更新呢?
2022-03-24主动强制更新版本功能是18年就提供的老功能了。 在微信开发者工具的模拟器中测试,每次测试前都重新选择一下这个选项,hasUpdate是必须为true的 [图片]
无法强制更新小程序,也没有提示框?[图片]
2022-03-24是不是代码有问题?这个逻辑是由开发者控制的,一定要在新版代码包下载完成以后,再让用户单击“确认更新”按钮。 const updateManager = wx.getUpdateManager() updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调,不能在这里搞事情 console.log(res.hasUpdate) }) updateManager.onUpdateReady(function () { // 只能在这里搞事情 wx.showModal({ title: '更新提示', content: '新版本已经准备好,是否马上重启小程序?', success: function (res) { if (res.confirm) { // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 updateManager.applyUpdate() } } }) })
小程序版本提示更新之后,点击确定会重新加载小程序,但是还是一直提示我版本更新小程序版本提示我更新之后,我点击确认按钮,会强制小程序更新,然后重新进入小程序,但是这个时候还是会提示我更新,再点击确认,还是会提示我更新,就这样一直循坏,重新进入小程序也没用,过一会它自己好了
2022-03-24这个示例有意思,我试下个楼主的代码片断,确可复现。 但这个问题是不是跟分包是否加载完成有关系呢?分包预下载能不能影响结果? 于是我实践了一下: https://developers.weixin.qq.com/s/htsoFYmd7Cxx [图片] 当跳进子包页面,再返回主包页面,这时候分包异步化组件居然正常了。 但是,如果不进入子包页面,使用分包预下载,等,一直等到分包pack_a下载成功了: preloadSubpackages: pack_a preloadSubpackages: successgm 再查看分包异步化组件的表现,也不行。 可见,这个问题与子包是不是完成加载,也没有必然联系。即使子包下载完成了,出会报错。
MAC 端微信不支持分包异步化组件?在MAC 端微信使用分包异步化组件导致页面白屏,请问什么时候MAC端微信能支持异步化组件? [图片] 体验版小程序报错截图 [图片] 能复现问题的代码片段: https://developers.weixin.qq.com/s/rJk4HPm779xb
2022-03-23MARK
wx.startLocationUpdateBackground息屏后获取的坐标为息屏前的最后坐标安卓微信小程序开启后台定位退到后台后息屏后,获取的点位为息屏前的最后一个获取的坐标。[图片] 有折线的位置都为开屏看时间的位置。退到后台息屏后获取的坐标都为开屏看时间的坐标
2021-02-19加油~
An SelectorQuery call is ignored because no proper[图片][图片]我服了 获取不了子组件的高度 只能说微信太不负责任了
2021-02-16