守护
守护
  • 发布:2021-02-05 20:18
  • 更新:2024-08-13 12:04
  • 阅读:2195

【报Bug】app退出重启后getStorageSync获取不到值

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macOS big sur(11)

HBuilderX类型: 正式

HBuilderX版本号: 3.1.1

手机系统: 全部

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

Android手机

示例代码:
/**  
 * @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获取缓存数据

预期结果:

可以获取数据

实际结果:

偶发性获取不到

bug描述:

业务逻辑: 把登录成功后的用户信息存入缓存,关闭App,下次启动检测是否存在此缓存。

但是Android手机是偶发性获取不到。仔细检查的确没有清空缓存的操作,要是清空的话,每次启动都得不到,而现在是偶发性的。已经有3个客户反映出现此问题了。(正式的发行包)

真机运行自定义基座时,uni.getStorageSync读取已经登录并存储了用户信息,也是偶发性获取不到。但是比正式发行包几率要高些。

目前是实在找不到确切的问题在那里,故无法提供demo。但的确出现使用uni.setStorageSync获取不到缓存信息的问题!

tips:之前项目时mui 5+App项目使用的是localStorage存储的,客户反映良好。(uni.setStorageSync在App端应该对应的是plus.storage.setItem),不知道为什么会是这样

2021-02-05 20:18 负责人:无 分享
已邀请:
FireFlyTest

FireFlyTest - 萤火虫鸿蒙开发

该问题仍然存在,我已反馈至你们iOS技术:FlowerRain,请尽快修复!

小金家的沐沐

小金家的沐沐

2023年7月18日16:34:29

IQOO手机,依旧问题存在。偶发性的获取不到配置地址。

DCloud_UNI_GSQ

DCloud_UNI_GSQ

出现问题的机型信息补充一下

李商隐

李商隐

iOS模拟器 - iPhone 14 Pro - iOS14.6 上也存在类似问题,热重载的时候能获取到数据,但是每次重新运行项目就获取不到缓存,缓存消失了。

1***@163.com

1***@163.com

这个问题在红米k50机型上依然存在,红米手机完全获取不到存储后的值,存储的值只能当前页面存取,跨页面获取不到内容

1***@163.com

1***@163.com - selfsummer

之前我也是遇到了这个问题,使用 uni.getStorageSync 获取不到数据 ,然后用其他方式搞定了,最开始还以为是其他BUG

  • 1***@qq.com

    怎么解决的,可以借鉴一下吗大佬

    2024-04-24 17:34

1***@qq.com

1***@qq.com - 美乐

小米14也会这样

要回复问题请先登录注册