Skip to content

Device Storage ​

DeviceStorage provides local persistent storage on the device. Data is stored only on the current device and is not synced across devices. Accessed via aiaxchat.WebApp.DeviceStorage. Bot API 8.0+

Limits ​

ItemLimit
Maximum storage capacity5 MB
Maximum key length128 characters
Key charactersA-Z, a-z, 0-9, _, -

Methods ​

setItem ​

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

Stores a key-value pair in device storage.

ParameterTypeRequiredDescription
keyStringYesKey name, 1-128 characters
valueStringYesValue
callbackFunctionNoCallback with (error, success) parameters
javascript
aiaxchat.WebApp.DeviceStorage.setItem('cache_data', JSON.stringify({
  timestamp: Date.now(),
  data: largeDataSet
}), (error, success) => {
  if (error) {
    console.error('Storage failed:', error);
  }
});

getItem ​

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

Reads the value of a specified key from device storage.

ParameterTypeRequiredDescription
keyStringYesKey name
callbackFunctionYesCallback with (error, value) parameters

removeItem ​

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

Removes a specified key from device storage.

ParameterTypeRequiredDescription
keyStringYesKey name
callbackFunctionNoCallback with (error, success) parameters

clear ​

javascript
aiaxchat.WebApp.DeviceStorage.clear(callback)

Clears all data in device storage.

ParameterTypeRequiredDescription
callbackFunctionNoCallback with (error, success) parameters

Comparison with Cloud Storage ​

FeatureCloudStorageDeviceStorage
Data syncCross-device syncLocal only
Capacity1024 keys × 4KB values5 MB total
Use casesUser preferences, small dataCache, large local data
Min version—Bot API 8.0+

Usage Example ​

javascript
const deviceStorage = aiaxchat.WebApp.DeviceStorage;

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

// Read cache
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); // Cache expired
    } else {
      callback(entry.data);
    }
  });
}