CocosCreator Storage 数据存储

本文探讨了cc.sys.localStorage.getItem方法在不同平台上的表现差异。在浏览器环境中(包括PC、手机及微信内置浏览器),当调用此方法而未获取到值时,返回结果为null。然而,在微信小游戏开发中,相同情况下的返回值却是0。这一差异对于跨平台应用的开发者尤为重要,需在代码实现时予以特别注意。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.jianshu.com/p/f5a231e3178e

平台差异
cc.sys.localStorage.getItem
若没有值的话,在浏览器(PC,手机,微信自带浏览器)会返回null
但是在微信小游戏中返回的是0

### 关于Cocos Creator中使用TypeScript进行数据存储的封装 为了更好地管理和操作本地存储,在Cocos Creator项目里可以创建一个专门用于处理`localStorage`读写的工具类。下面提供了一个基于TypeScript实现的数据存储管理器的例子,该实例不仅简化了存取流程还增加了错误处理机制。 #### 创建LocalStorageManager 类 此部分展示了如何构建一个名为 `LocalStorageManager` 的静态类来统一管理所有的本地存储交互行为: ```typescript /// <reference path="cc.ts" /> class LocalStorageManager { private static prefix: string = 'CC_'; // 添加前缀防止键名冲突 /** * 设置指定key对应的value至本地存储内。 * * @param key 键名称 * @param value 要保存的内容 */ public static setItem(key: string, value: any): void { try { const prefixedKey = `${this.prefix}${key}`; sys.localStorage.setItem(prefixedKey, JSON.stringify(value)); } catch (error) { console.error(`Failed to save data with key ${key}`, error); } } /** * 依据给定的key从本地存储获取相应的值并尝试解析成JSON对象。 * * @param key 键名称 * @returns 解析后的数据或null如果不存在对应记录 */ public static getItem<T>(key: string): T | null { try { const prefixedKey = `${this.prefix}${key}`; const itemStr = sys.localStorage.getItem(prefixedKey); if (!itemStr) return null; return JSON.parse(itemStr) as T; } catch (error) { console.warn(`Error reading or parsing stored data for key ${key}:`, error); return null; } } /** * 移除特定key关联的数据项。 * * @param key 键名称 */ public static removeItem(key: string): void { try { const prefixedKey = `${this.prefix}${key}`; sys.localStorage.removeItem(prefixedKey); } catch (error) { console.error(`Unable to delete storage entry for key ${key}. Error was: `, error); } } } ``` 通过上述代码片段可见,这里实现了三个主要功能:设置、检索以及删除本地存储条目[^1]。值得注意的是,所有这些方法都考虑到了异常情况的发生,并提供了适当的日志输出以便调试时追踪问题所在。 此外,考虑到不同平台间可能存在的差异性(比如某些浏览器环境下的安全限制),建议开发者们在实际部署之前充分测试此类接口的表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iningwei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值