You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS最新更新后已安装PWA的Local Storage被清空,是否为预期行为?

iOS更新后已安装PWA的Local Storage被清空:是否属于预期行为?

这确实是iOS部分版本的预期行为,而且你的观察非常准确——仅影响已安装的PWA,浏览器内的PWA不受波及,这里核心是iOS对已安装PWA的存储机制和浏览器存在容易被忽略的差异:

核心原因:iOS已安装PWA的存储隔离机制

iOS把已安装的PWA当作独立的“类原生应用”对待,它的存储(包括Local Storage、Session Storage)被放在独立的沙盒容器里,和Safari浏览器的存储完全分离。而系统更新时,iOS会执行一系列缓存清理和沙盒重置操作,其中就可能包含已安装PWA的存储目录,直接导致Local Storage里的内容被清空。

相比之下,浏览器内的PWA属于Safari的一部分,它的存储和普通网页共享Safari的存储容器,系统更新不会主动清理这部分内容,所以不会出现登出问题。

苹果的相关规则说明

虽然苹果没有在文档里明确写“系统更新会清空PWA的Local Storage”,但在PWA存储的相关说明中提到:已安装PWA的本地存储可能在设备空间不足、长时间未使用、系统版本更新等场景下被系统回收。这意味着这种清空行为是符合iOS的存储管理逻辑的,属于预期内的情况。

你可能存在的认知遗漏

很多开发者默认PWA的存储行为和浏览器完全一致,但实际上iOS对已安装PWA的定位更接近原生App,它的沙盒管理规则和浏览器有本质区别:

  • 浏览器的存储属于用户的“网页数据”,系统会尽量保留;
  • 已安装PWA的存储属于“应用沙盒数据”,系统会按照原生App的存储回收逻辑来处理,优先级更低,更容易被清理。

建议的解决方案

为了避免这种情况影响用户体验,你可以尝试这些方案:

  • 改用IndexedDB存储JWT:iOS对IndexedDB的稳定性支持更好,系统更新时被清空的概率远低于Local Storage;
  • 结合Cookie进行存储:在API请求时使用Cookie传递JWT,注意设置Secure、SameSite等属性,iOS已安装PWA对Cookie的支持也相对稳定;
  • 添加登录状态校验逻辑:在PWA启动时检查存储中是否存在有效JWT,如果不存在则自动跳转登录页面,并可以添加友好提示,告知用户系统更新可能导致登录状态重置。

内容的提问来源于stack exchange,提问作者Scott Bamforth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:03:21