Перейти к содержанию

Хранение данных на клиенте

Для хранения данных на клиентском устройстве можно воспользоваться стандартными веб-технологиями indexedDB и localStorage. Однако такое хранение не является безопасным. В случае сохранения токенов, персональных и других важных данных необходимо воспользоваться методами работы с защищенным хранилищем, приведенными ниже.

clientStorageSet

iOS 3.12Android 3.12Web 3.12

Метод сохранения записи в хранилище. Запись будет обновлена, если существовала ранее.

Ограничения

Для одного SmartApp можно сохранить не более 1000 записей. Каждая запись не должна превышать 1Мб после сериализации в строку.

Аргументы

Аргументом метода является объект, содержащий параметры:

Параметр Тип данных Описание
key string Ключ записи
value
  • object;
  • array;
  • bool;
  • number;
  • null;
  • string
Значение записи

Возвращаемое значение

Возвращаемое значение содержит Promise, который будет исполненен в случае успешной записи.

Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import * as SDK from "@expressms/smartapp-sdk";

async function test() {
  try {
    const key = "access_token";
    const value = "abcdef01291832";

    const { payload: { status } } = await SDK.clientStorageSet({ key, value });

    if (status === "success") console.log("Saved!");
  } catch(error) {
    console.log(error);
  }
}

clientStorageGet

iOS 3.12Android 3.12Web 3.12

Метод получения записи из хранилища.

Аргументы

Аргументом метода является объект, содержащий параметр:

Параметр Тип данных Описание
key string Ключ

Возвращаемое значение содержит Promise, который после исполнения вернет объект с атрибутом payload. Объект содержит следующие свойства:

Свойство Тип данных Описание
value
  • object;
  • array;
  • bool;
  • number;
  • null;
  • string
Значение записи

Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import * as SDK from "@expressms/smartapp-sdk";

async function test() {
  try {
    const key = "access_token";

    const { payload: { status, value } } = await SDK.clientStorageGet({ key });

    if (status === "success") console.log("Loaded!", value);
  } catch(error) {
    console.log(error);
  }
}

clientStorageRemove

iOS 3.12Android 3.12Web 3.12

Метод удаления записи из хранилища.

Аргументы

Аргументом метода является объект, содержащий параметр:

Параметр Тип данных Описание
key string Ключ записи

Возвращаемое значение содержит Promise, который будет исполненен в случае успешной записи.

Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import * as SDK from "@expressms/smartapp-sdk";

async function test() {
  try {
    const key = "access_token";

    const { payload: { status } } = await SDK.clientStorageGet({ key });

    if (status === "success") console.log("Removed!");
  } catch(error) {
    console.log(error);
  }
}

clientStorageClear

iOS 3.12Android 3.12Web 3.12

Метод очищения всех записи для текущей SmartApp.

Возвращаемое значение содержит Promise, который будет исполненен в случае успешной записи.

Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import * as SDK from "@expressms/smartapp-sdk";

async function test() {
  try {
    const { payload: { status } } = await SDK.clientStorageClear();

    if (status === "success") console.log("Cleared!");
  } catch(error) {
    console.log(error);
  }
}