上传
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
/**
|
||||
* 本地存储封装 - 兼容微信小程序和 App
|
||||
*/
|
||||
|
||||
/**
|
||||
* 设置本地存储(同步)
|
||||
* @param {string} key 键名
|
||||
* @param {*} value 值(自动序列化)
|
||||
*/
|
||||
export function setStorage(key, value) {
|
||||
try {
|
||||
uni.setStorageSync(key, JSON.stringify(value))
|
||||
} catch (e) {
|
||||
console.error(`setStorage [${key}] 失败:`, e)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取本地存储(同步)
|
||||
* @param {string} key 键名
|
||||
* @param {*} defaultValue 默认值
|
||||
* @returns {*}
|
||||
*/
|
||||
export function getStorage(key, defaultValue = null) {
|
||||
try {
|
||||
const value = uni.getStorageSync(key)
|
||||
if (value) {
|
||||
return JSON.parse(value)
|
||||
}
|
||||
return defaultValue
|
||||
} catch (e) {
|
||||
console.error(`getStorage [${key}] 失败:`, e)
|
||||
return defaultValue
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除本地存储
|
||||
* @param {string} key 键名
|
||||
*/
|
||||
export function removeStorage(key) {
|
||||
try {
|
||||
uni.removeStorageSync(key)
|
||||
} catch (e) {
|
||||
console.error(`removeStorage [${key}] 失败:`, e)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 清空所有本地存储
|
||||
*/
|
||||
export function clearStorage() {
|
||||
try {
|
||||
uni.clearStorageSync()
|
||||
} catch (e) {
|
||||
console.error('clearStorage 失败:', e)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置带过期时间的存储
|
||||
* @param {string} key 键名
|
||||
* @param {*} value 值
|
||||
* @param {number} expire 过期时间(秒)
|
||||
*/
|
||||
export function setStorageWithExpire(key, value, expire) {
|
||||
const data = {
|
||||
value,
|
||||
expire: expire ? Date.now() + expire * 1000 : null,
|
||||
}
|
||||
setStorage(key, data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取带过期时间的存储
|
||||
* @param {string} key 键名
|
||||
* @param {*} defaultValue 默认值
|
||||
* @returns {*}
|
||||
*/
|
||||
export function getStorageWithExpire(key, defaultValue = null) {
|
||||
const data = getStorage(key)
|
||||
if (!data) return defaultValue
|
||||
if (data.expire && Date.now() > data.expire) {
|
||||
removeStorage(key)
|
||||
return defaultValue
|
||||
}
|
||||
return data.value
|
||||
}
|
||||
Reference in New Issue
Block a user