uni.setStorageSync('xxx', '超过十位中文超过十位中超过十位中文超过十位中文超过十位中文文')
uni.getStorageSync('xxx')
- 发布:2022-09-26 16:57
- 更新:2022-10-01 17:28
- 阅读:405
打包安卓APP,使用 uni.setStorageSync('key','value') 当value是中文且大于10位 且 在某个页面的onload调用获取会报错 导致整个页面停止!
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 19043.2006
HBuilderX类型: 正式
HBuilderX版本号: 3.6.3
手机系统: Android
手机系统版本号: Android 12
手机厂商: 小米
手机机型: redmi note9pro
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
uni.setStorageSync('xxx', '超过十位中文超过十位中超过十位中文超过十位中文超过十位中文文')
uni.getStorageSync('xxx')
uni.setStorageSync('xxx', '超过十位中文超过十位中超过十位中文超过十位中文超过十位中文文')
uni.getStorageSync('xxx')
预期结果:
正常获取并输出本地存储的内容
正常获取并输出本地存储的内容
实际结果:
会报错,导致整个页面生命周期停止运行
会报错,导致整个页面生命周期停止运行
bug描述:
uni.setStorageSync('xxx', '超过十位中文超过十位中超过十位中文超过十位中文超过十位中文文')
某个页面的onload 获取
uni.getStorageSync('xxx')
会报错,导致整个页面生命周期停止运行
6 个回复
FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
帮助排查: 红米手机,andorid11,没有出现这个情况,能正常获取
牛牛2021
确实有这个问题
xmy
我也有这个问题
a***@qq.com
问题+1,
解决方法:缓存时将中文转码,取出来时解码
localData(k,v){
if(v === undefined){
return decodeURI(uni.getStorageSync(k));
}
else if(v === null){
uni.removeStorage({
key: k,
fail(){
uni.showModal({
content: '删除本地数据失败',
});
}
});
}
else {
uni.setStorage({
key: k,
data: encodeURI(v),
fail(e){
console.log(e)
uni.showModal({
content: '本地数据设置失败,请检测storage存储',
});
}
});
}
},
王彦祖 - 90后
上个版本的HBuilderX 还没有这个问题,最近更新了出现了这个问题,希望官方加急修复下
牛牛2021
是的,记得之前是OK的
2022-09-30 14:44
l***@163.com
我也一样,打包以后运行到华为手机上就报错,然后进程卡死,页面卡死
l***@163.com
裂开了,国庆还在公司加班
2022-10-01 17:28