super-hero/assets/cc-common/cc-util/UmStorageManager.ts

99 lines
2.9 KiB
TypeScript
Raw Normal View History

2024-04-19 03:49:41 -07:00
import { _decorator, Component } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('UmStorageManager')
export class UmStorageManager extends Component {
static _instance: UmStorageManager;
private _user_id: string = "";
static get instance() {
if (UmStorageManager._instance) {
return UmStorageManager._instance;
}
UmStorageManager._instance = new UmStorageManager();
UmStorageManager._instance.initData();
return UmStorageManager._instance;
}
initData() {
this._user_id = this.getUserId();
}
getNumberByKey(key: string, default_value: number = 0, isUser: boolean = false): number {
key = this._convertKey(key, isUser);
let result = localStorage.getItem(key);
return result ? Number(result) : default_value;
}
public setNumberByKey(key: string, value: number, isUser: boolean = false) {
key = this._convertKey(key, isUser);
localStorage.setItem(key, value.toString());
}
public getStringByKey(key: string, default_value: string = "", isUser: boolean = false): string {
key = this._convertKey(key, isUser);
let result = localStorage.getItem(key);
return result ? result : default_value;
}
public setStringByKey(key: string, value: string, isUser: boolean = false) {
key = this._convertKey(key, isUser);
localStorage.setItem(key, value);
}
public getBooleanByKey(key: string, default_value: boolean = false, isUser: boolean = false): boolean {
key = this._convertKey(key, isUser);
let result = localStorage.getItem(key);
if (result) {
return result === "true" ? true : false;
}
else {
return default_value;
}
}
public setBooleanByKey(key: string, value: boolean, isUser: boolean = true) {
key = this._convertKey(key, isUser);
localStorage.setItem(key, value ? "true" : "false");
}
public removeKey(key: string)
{
localStorage.removeItem(key);
}
public removeAllKey()
{
localStorage.clear();
}
private _convertKey(key: string, isUser: boolean): string {
if (isUser) {
key = this._user_id + key;
}
return key;
}
public encrypt(input: string): string {
return input?.length > 0 ? btoa(new TextEncoder().encode(input).toString()) : "";
}
public decrypt(input: string): string {
return input?.length > 0 ? new TextDecoder().decode(new Uint8Array(atob(input).split(',').map((s: string) => { return Number(s) }))).toString() : "";
}
//------- USER ID ----------------------------------
public setUserId(userId: string) {
this._user_id = userId;
localStorage.setItem("user_id", userId);
}
public getUserId(): string {
let result = localStorage.getItem("user_id");
return result ? result : "";
}
}