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

SmartApp c кешированием

В данной статье рассматривается, что такое SmartApp c кешированием и условия для его стабильной работы.

Описание

SmartApp c кешированием представляет собой клиент-серверную архитектуру. На клиенте выполняется frontend, в качестве backend выступает чат-бот:

Рисунок_1

SmartApp frontend с кешированием сохраняет статику на клиенте, что позволяет ей моментально загружаться на пользовательском устройстве и работать офлайн. На чат-боте статика публикуется как архив.

Условия для стабильной работы

  1. Бот отдает файл с JSON содержимым по адресу:

    /smartapp_files/static/smartapp-manifest.json
    

    Пример smartapp-manifest.json:

    1
    2
    3
    4
    5
    6
    {
        "manifestVersion": "1.0.0",
        "smartAppVersion": "2.0.1",
        "bundlePath": "/bundle-2.0.1.zip",
        "changeLog": "Ускорена загрузка данных"
    }
    
    Параметр Тип данных Описание
    manifestVersion string Константа, обязательно 1.0.0
    smartAppVersion string Текущая версия SmartApp в формате semver, при обновлении этого параметра клиент скачивает новый bundle
    bundlePath string Путь к архиву со статикой SmartApp frontend
    changeLog string Описание изменений в текущей версии SmartApp, будет выведено пользователю

    bundlePath

    Параметр bundlePath необходимо начинать с символа /. Это обеспечивает корректное скачивание архива bundle клиентами.

  2. Чат-бот отдает zip-архив (bundle) со статикой SmartApp по адресу:

    /smartapp_files/static/{bundlePath}
    

    где bundlePath — значение из smartapp-manifest.

    Содержимое архива bundle

    Внутри архива bundle кроме статики SmartApp frontend обязательно должен располагаться файл smartapp-manifest.json в корне архива.

  3. Навигация внутри SmartApp frontend осуществляется через hash роутинг.

  4. Не использовать <script type="module">, так как это приводит к ошибкам CORS и работа SmartApp frontend становится невозможной.