99 lines
2.9 KiB
TypeScript
99 lines
2.9 KiB
TypeScript
|
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 : "";
|
||
|
}
|
||
|
|
||
|
}
|