- 发布:2021-02-05 20:18
- 更新:2024-08-13 12:04
- 阅读:2025
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: macOS big sur(11)
HBuilderX类型: 正式
HBuilderX版本号: 3.1.1
手机系统: 全部
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
示例代码:
/**
* @description 存储本地数据
* @param {Object} key
* @param {Object} value
*/
setStorage(key,value){
try {
uni.setStorageSync(key, JSON.stringify(value || {}));
} catch (e) {
uni.setStorageSync(key, null);
}
},
/**
* @description 获取本地数据
* @param {Object} key
*/
getStorage(key){
try {
let value = uni.getStorageSync(key) || {};
if (value) {
return JSON.parse(value);
}
} catch (e) {
return null;
}
},
/**
* @description 存储本地数据
* @param {Object} key
* @param {Object} value
*/
setStorage(key,value){
try {
uni.setStorageSync(key, JSON.stringify(value || {}));
} catch (e) {
uni.setStorageSync(key, null);
}
},
/**
* @description 获取本地数据
* @param {Object} key
*/
getStorage(key){
try {
let value = uni.getStorageSync(key) || {};
if (value) {
return JSON.parse(value);
}
} catch (e) {
return null;
}
},
操作步骤:
使用uni.getStorageSync获取缓存数据
使用uni.getStorageSync获取缓存数据
预期结果:
可以获取数据
可以获取数据
实际结果:
偶发性获取不到
偶发性获取不到
bug描述:
业务逻辑: 把登录成功后的用户信息存入缓存,关闭App,下次启动检测是否存在此缓存。
但是Android手机是偶发性获取不到。仔细检查的确没有清空缓存的操作,要是清空的话,每次启动都得不到,而现在是偶发性的。已经有3个客户反映出现此问题了。(正式的发行包)
真机运行自定义基座时,uni.getStorageSync读取已经登录并存储了用户信息,也是偶发性获取不到。但是比正式发行包几率要高些。
目前是实在找不到确切的问题在那里,故无法提供demo。但的确出现使用uni.setStorageSync获取不到缓存信息的问题!
tips:之前项目时mui 5+App项目使用的是localStorage存储的,客户反映良好。(uni.setStorageSync在App端应该对应的是plus.storage.setItem),不知道为什么会是这样
7 个回复
FireFlyTest - 萤火虫鸿蒙开发
该问题仍然存在,我已反馈至你们iOS技术:FlowerRain,请尽快修复!
小金家的沐沐
2023年7月18日16:34:29
IQOO手机,依旧问题存在。偶发性的获取不到配置地址。
DCloud_UNI_GSQ
出现问题的机型信息补充一下
李商隐
iOS模拟器 - iPhone 14 Pro - iOS14.6 上也存在类似问题,热重载的时候能获取到数据,但是每次重新运行项目就获取不到缓存,缓存消失了。
1***@163.com
这个问题在红米k50机型上依然存在,红米手机完全获取不到存储后的值,存储的值只能当前页面存取,跨页面获取不到内容
1***@163.com - selfsummer
之前我也是遇到了这个问题,使用 uni.getStorageSync 获取不到数据 ,然后用其他方式搞定了,最开始还以为是其他BUG
1***@qq.com
怎么解决的,可以借鉴一下吗大佬
2024-04-24 17:34
1***@qq.com - 美乐
小米14也会这样