SmartApp c кешированием
В данной статье рассматривается, что такое SmartApp c кешированием и условия для его стабильной работы.
Описание
SmartApp c кешированием представляет собой клиент-серверную архитектуру. На клиенте выполняется frontend, в качестве backend выступает чат-бот:
SmartApp frontend с кешированием сохраняет статику на клиенте, что позволяет ей моментально загружаться на пользовательском устройстве и работать офлайн. На чат-боте статика публикуется как архив.
Условия для стабильной работы
-
Бот отдает файл с 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 клиентами.
-
Чат-бот отдает zip-архив (bundle) со статикой SmartApp по адресу:
/smartapp_files/static/{bundlePath}
где bundlePath — значение из smartapp-manifest.
Содержимое архива bundle
Внутри архива bundle кроме статики SmartApp frontend обязательно должен располагаться файл
smartapp-manifest.json
в корне архива. -
Навигация внутри SmartApp frontend осуществляется через hash роутинг.
-
Не использовать
<script type="module">
, так как это приводит к ошибкам CORS и работа SmartApp frontend становится невозможной.