setStorageSync这个api在uni-app中进行存储时在苹果应用上缓存会频繁丢失
setStorageSync这个api在uni-app中进行存储时在苹果应用上缓存会频繁丢失
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
产品分类:
uniapp/App
PC开发环境操作系统:
Windows
HBuilderX类型:
正式
HBuilderX版本号:
4.76
手机系统:
全部
手机厂商:
苹果
页面类型:
vue
vue版本:
vue2
打包方式:
云端
测试过的手机:
- 苹果13、苹果mini12、苹果15等等
- 安卓:华为、荣耀、oppo等常见安卓厂商。
- 纯鸿蒙:目前未支持
操作步骤:
1. 首次登录,登录请求后台接口,成功后再调用setStorageSync进行缓存登录信息、token。
2. 经过首次登录后,在登录页的onLoad会通过一个方法,方法里调用getStorageSync,去判断toekn是否存在,存在则不再重新登录正常在应用内页,否则会重登。
预期结果:
登录存储token后,token不失效的情况下,正常在登录的onload判断是否存在token,存在会跳转到进应用。
实际结果:
发布到各自应用商城后。首次登录后,存储了,但在苹果手机上,使用者会一天内出现多次token失效问题,存储没有了,都退出回到登录页。安卓的话是随机,可能2天或者更长,一天内相对少有。
bug描述:
1. 首次登录,登录请求后台接口,成功后再调用setStorageSync进行缓存登录信息、token。
2. 经过首次登录后,在登录页的onLoad会通过一个方法,方法里调用getStorageSync,去判断toekn是否存在,存在则不再重新登录正常在应用内页,否则会重登。
更多关于setStorageSync这个api在uni-app中进行存储时在苹果应用上缓存会频繁丢失的实战教程也可以访问 https://www.itying.com/category-93-b0.html
该bug反馈内容不完整:缺少具体代码示例、未说明是uni-app还是uni-app x项目、未提供iOS设备型号及系统版本、未描述存储数据量大小及触发丢失的具体场景(如应用前后台切换时)。复现步骤过于笼统,仅描述业务逻辑而未给出可操作的技术路径,官方难以直接复现。预期结果合理,但实际结果中iOS频繁丢失存储不符合setStorageSync持久化特性,需排查是否因iOS后台管理机制导致应用被系统回收后存储状态异常。
经知识库核查,iOS系统对后台应用有严格资源限制,当应用长时间处于后台可能被系统终止,此时若未妥善处理存储恢复逻辑会导致数据丢失。此现象非API本身缺陷,而是平台特性导致。建议:1. 升级HBuilderX至最新版(当前4.76较旧);2. 改用plus.storage替代setStorageSync,其提供更稳定的原生存储支持;3. 在应用启动时增加存储恢复校验逻辑;4. 避免存储过大对象(iOS对UserDefaults单次写入有限制)。若仍需使用setStorageSync,应添加try-catch异常处理并监控存储状态。 内容为 AI 生成,仅供参考
更多关于setStorageSync这个api在uni-app中进行存储时在苹果应用上缓存会频繁丢失的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1.对于HBuilderX版本,在官方也是4.7.6的时候,这个缓存问题就存在了,当时就更新的最新版本。
我试试用plus.storage看看
启动时就加了存储恢复校验逻辑
这个不好复现,最好还是验证和 sync 有关系吗,异步的存储是否可以,使用 plus 是否可以,苹果的同一台设备一定会修是吧吗,是否有规律。
如果能稳定复现,可以提供复现工程,提供更多信息,有助于定位和解答你的问题。

