Appearance
qin.setStorage(OBJECT)
将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。
OBJECT 参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 本地缓存中的指定的 key |
| data | Any | 是 | 需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象 |
| success | Function | 否 | 接口调用成功的回调函数 |
| fail | Function | 否 | 接口调用失败的回调函数 |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例
js
qin.setStorage({
key: 'storage_key',
data: 'hello',
success: () => {
console.log('success');
},
});qin.setStorage({
key: 'storage_key',
data: 'hello',
success: () => {
console.log('success');
},
});注意
qin-、qin_为前缀的key,为系统保留关键前缀。如qin_deviceId、qin_id_token,请开发者为key命名时避开这些前缀。
qin.setStorageSync(KEY, DATA)
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。
OBJECT 参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 本地缓存中的指定的 key |
| data | Any | 是 | 需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象 |
js
try {
qin.setStorageSync('storage_key', 'hello');
} catch (e) {
// error
}try {
qin.setStorageSync('storage_key', 'hello');
} catch (e) {
// error
}qin.getStorage(OBJECT)
从本地缓存中异步获取指定 key 对应的内容。
OBJECT 参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 本地缓存中的指定的 key |
| success | Function | 是 | 接口调用的回调函数, res = {data: key对应的内容} |
| fail | Function | 否 | 接口调用失败的回调函数 |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success 返回参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| data | Any | key 对应的内容 |
示例
js
qin.getStorage({
key: 'storage_key',
success: (theRes) => {
console.log(theRes.data);
},
});qin.getStorage({
key: 'storage_key',
success: (theRes) => {
console.log(theRes.data);
},
});qin.getStorageSync(KEY)
从本地缓存中同步获取指定 key 对应的内容。
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 本地缓存中的指定的 key |
示例
js
try {
const value = qin.getStorageSync('storage_key');
if (value) {
console.log(value);
}
} catch (e) {
// error
}try {
const value = qin.getStorageSync('storage_key');
if (value) {
console.log(value);
}
} catch (e) {
// error
}qin.getStorageInfo(OBJECT)
异步获取当前 storage 的相关信息。
平台差异说明
| H5 | 微信小程序 | 抖音小程序 | 小红书小程序 | 快手小程序 |
|---|---|---|---|---|
| √ | √ | √ | √ | √ |
OBJECT 参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| success | Function | 是 | 接口调用的回调函数,详见返回参数说明 |
| fail | Function | 否 | 接口调用失败的回调函数 |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success 返回参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| keys | Array<String> | 当前 storage 中所有的 key |
| currentSize | Number | 当前占用的空间大小, 单位:kb |
| limitSize | Number | 限制的空间大小, 单位:kb |
示例
js
qin.getStorageInfo({
success: (theRes) => {
console.log(theRes.keys);
console.log(theRes.currentSize);
console.log(theRes.limitSize);
},
});qin.getStorageInfo({
success: (theRes) => {
console.log(theRes.keys);
console.log(theRes.currentSize);
console.log(theRes.limitSize);
},
});qin.getStorageInfoSync()
同步获取当前 storage 的相关信息。
平台差异说明
| H5 | 微信小程序 | 抖音小程序 | 小红书小程序 | 快手小程序 |
|---|---|---|---|---|
| √ | √ | √ | √ | √ |
示例
js
try {
const res = qin.getStorageInfoSync();
console.log(res.keys);
console.log(res.currentSize);
console.log(res.limitSize);
} catch (e) {
// error
}try {
const res = qin.getStorageInfoSync();
console.log(res.keys);
console.log(res.currentSize);
console.log(res.limitSize);
} catch (e) {
// error
}qin.removeStorage(OBJECT)
从本地缓存中异步移除指定 key。
OBJECT 参数说明*
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 本地缓存中的指定的 key |
| success | Function | 是 | 接口调用的回调函数 |
| fail | Function | 否 | 接口调用失败的回调函数 |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例
js
qin.removeStorage({
key: 'storage_key',
success: () => {
console.log('success');
},
});qin.removeStorage({
key: 'storage_key',
success: () => {
console.log('success');
},
});qin.removeStorageSync(KEY)
从本地缓存中同步移除指定 key。
参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 本地缓存中的指定的 key |
示例
js
try {
qin.removeStorageSync('storage_key');
} catch (e) {
// error
}try {
qin.removeStorageSync('storage_key');
} catch (e) {
// error
}qin.clearStorage()
清理本地数据缓存。
示例
js
qin.clearStorage();qin.clearStorage();qin.clearStorageSync()
同步清理本地数据缓存。
示例
js
try {
qin.clearStorageSync();
} catch (e) {
// error
}try {
qin.clearStorageSync();
} catch (e) {
// error
}注意
- H5 端为 localStorage,浏览器限制 5M 大小,是缓存概念,可能会被清理
- 各个小程序端为其自带的 storage api ,数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
- 微信小程序单个 key 允许存储的最大数据长度为 1MB ,所有数据存储上限为 10MB 。
- 清空Storage 会导致 qin.getSystemInfo 获取到的 deviceId 改变
- 除此之外, H5 端其他数据存储方案还支持 websql 、 indexedDB 、 sessionStorage