请教一个creator3.8.3版本本地存储数据导出到微信开发者工具不生效的问题

问题描述:我需要在本地存储声音是否开关的一个数值,然后判断这个值如果是真就播放声音,如果不是真就不播放声音

我是游戏启动的时候会检查有没有这个值,如果没有则创建,如果有,就跳过
sys.localStorage.setItem(“shengyinkongzhi”,true) 这样创建的,如上图,的确是创建了。
在声音设置页面也能读取到这个值,可以实现开关状态的保存和控制,也就是这个在cocos creator中是没有问题的


但是导出为微信小游戏中,本地数据读取不到,调试器的application中没有这个数据,但是在Storage中可以看到这个数据,但是声音设置页面无法读取和用来判断声音的状态。不知道为啥。
有没有大佬知道这是为啥子。。。。

  • Creator 版本: 3.8

  • 目标平台:微信小游戏开发工具

  • 重现方式:点击设置必现

  • 首个报错: 无法读取本地存储的数据

  • 之前哪个版本是正常的: 没有正常的

  • 手机型号: mate60

  • 手机浏览器: 自带的

  • 编辑器操作系统: win11

  • 重现概率: 100%

那个大佬知道这是咋回事,实在搞不定

你这提示不全啊,看过去可能的一个原因是你读取的时候 return false 了。然后你!false 导致你又设置为 true ?

为什么判断的时候是localStorage.getItem,生成的时候又是sys.localStorage.setItem

进入游戏,用getitem判断这个值是不是存在,如果不存在就用setitem创建,额,我是这个意思

大佬,啥意思,没懂,,进入游戏先判断下本地是不是有这个数值,然后没有就创建,有就不创建,这个地方就是判断下有没有这个“shengyingkongzhi” 这个东西

image
确定在微信端,这两个对象相等吗?

额,我统一下,弱弱的问下,大佬,这两个有啥区别

显而易见的是,一个是sys下面的,一个是window下面的。
不显而易见的是
sys.localStorage 是 cocos封装的,在不同平台下有不同的实现,比如web下,和localStorage是一样的,在原生平台通过Sqlite实现,在小游戏平台,通过平台提供的api转换。
localStorage,只有web平台有该实现;原生平台无,假设能用,也是第三方实现的;小游戏平台,没研究过,也没用过,因为api里没有。

多谢大佬,都换成sys开头的,测试下貌似没问题了,,,太神奇了,,,