Skip to content

设备存储 ​

DeviceStorage 提供基于设备本地的持久化存储服务,数据仅存储在当前设备上,不会跨设备同步。通过 aiaxchat.WebApp.DeviceStorage 访问。Bot API 8.0+

限制 ​

项目限制
最大存储容量5 MB
键名最大长度128 字符
键名字符A-Z、a-z、0-9、_、-

方法 ​

setItem ​

javascript
aiaxchat.WebApp.DeviceStorage.setItem(key, value, callback)

存储一个键值对到设备存储。

参数类型必填描述
keyString是键名,1-128 字符
valueString是值
callbackFunction否回调函数,参数 (error, success)
javascript
aiaxchat.WebApp.DeviceStorage.setItem('cache_data', JSON.stringify({
  timestamp: Date.now(),
  data: largeDataSet
}), (error, success) => {
  if (error) {
    console.error('存储失败:', error);
  }
});

getItem ​

javascript
aiaxchat.WebApp.DeviceStorage.getItem(key, callback)

从设备存储中读取指定键的值。

参数类型必填描述
keyString是键名
callbackFunction是回调函数,参数 (error, value)

removeItem ​

javascript
aiaxchat.WebApp.DeviceStorage.removeItem(key, callback)

从设备存储中删除指定键。

参数类型必填描述
keyString是键名
callbackFunction否回调函数,参数 (error, success)

clear ​

javascript
aiaxchat.WebApp.DeviceStorage.clear(callback)

清除设备存储中的所有数据。

参数类型必填描述
callbackFunction否回调函数,参数 (error, success)

与云存储的区别 ​

特性CloudStorageDeviceStorage
数据同步跨设备同步仅本地存储
容量限制1024 键 × 4KB 值5 MB 总容量
适用场景用户偏好、小型数据缓存、大量本地数据
最低版本—Bot API 8.0+

使用示例 ​

javascript
const deviceStorage = aiaxchat.WebApp.DeviceStorage;

// 缓存 API 响应
function cacheResponse(endpoint, data) {
  const cacheEntry = JSON.stringify({
    data: data,
    cachedAt: Date.now()
  });
  deviceStorage.setItem('cache_' + endpoint, cacheEntry);
}

// 读取缓存
function getCachedResponse(endpoint, maxAge, callback) {
  deviceStorage.getItem('cache_' + endpoint, (error, value) => {
    if (error || !value) {
      callback(null);
      return;
    }
    const entry = JSON.parse(value);
    if (Date.now() - entry.cachedAt > maxAge) {
      callback(null); // 缓存已过期
    } else {
      callback(entry.data);
    }
  });
}