笔记:微信小程序中webview中页面的localstorage清除问题

2,518 阅读2分钟

起因是公司的同事问我当在什么情况下才会把页面中的本地存储清除掉。身为菜鸟的我被问住了,随即我说稍等我look look 文档,但查阅文档时只发现一句

清理策略

本地缓存的清理时机跟代码包一样,只有在代码包被清理的时候本地缓存才会被清理。

显然,就这样的一句话肯定不能解答我心中的疑惑。于是乎我开始搜索小程序社区中大佬们的回答,然而搜索后大佬们各执己见,说什么的都有。我本着实践见真章的原则,开始对不同系统的手机进行了实验,由于本人能力有限,仅对IOS和部分安卓手机进行了测试。这篇文章也只是作为笔记记录我发现问题,解决问题的过程,如果有不对的地方希望大佬们指点,万分感谢。

首先我使用了IOS 15.3.1版本,微信版本8.0.18版本

  • 测试将微信退至后台三分钟后。(由于时间原因,本人只测试了三分钟左右时间)结果:localstorage未被清空
  • 测试将微信小程序关闭三分钟后。结果:localstorage未被清空
  • 测试删除微信小程序后。结果:localstorage未被清空
  • 测试退出当前账号后。结果:localstorage被清空
  • 测试关闭微信进程后。结果:localstorage未被清空

然后我又使用了四款安卓系统手机进行测试 小米11、小米8、小米12 pro、vivo neo5 微信版本8.0.19版本

  • 测试将微信退至后台。结果:localstorage未被清空
  • 测试只关闭微信小程序进程。结果:localstorage未被清空
  • 测试退出当前账号后。结果:localstorage被清空
  • 测试删除小程序后。结果:小米12 pro被清空 其他机型未被清空
  • 测试删除小程序后切换其他小程序后。结果:小米12 pro被清空,小米 11未清空,其它机型未测试
  • 测试只关闭微信进程后。结果:localstorage未被清空

由此得出结论:

  1. 在切换账号时小程序一定会清空localstorage。
  2. 安卓系统:可能由于小程序和微信不是同一个进程,因此清除小程序进程时,localstorage会被清除。
  3. 安卓系统:差异点,小程序被删除后和删除后切换小程序时小米12 pro会清空localstorage。