Как работать с Embedded App
Что такое Embedded App
Embedded App — это встроенный (нативный) смартап. Не относится к APK-аппам. Пример встроенного смартапа: музыкальный плеер в мобильном приложении «Салют». Для работы Embedded App на стороне Assistant SDK реализован отдельный API.
Как создать навык в IDE для работы с поверхностью
Чтобы создать навык, необходимо создать проект и задать настройки.
Создание проекта
Создать проект можно по стандартному сценарию, который описан в документации к Studio.
Навыки работают на несколько поверхностей: preMatch
(функция, которая вызывается перед классификатором интентов) разводит сценарий в разные темы (ветки). Поэтому в разных темах могут работать разные интенты: таким образом можно контролировать поведение смартапа.
Работа навыка с поверхностью
Чтобы навык работал с вашей поверхностью, нужно запросить смену или добавление настроек в app_dir
:
-
если будет работать на одной поверхности с типом EMBEDDED_APP — присвойте
appType
значениеEMBEDDED_APP
для текущей версии смартапа и укажите свою поверхность; -
если будет работать на нескольких поверхностях — заведите внутри
project_id
несколько смартапов с разнымиappType
, развернутые на разных поверхностях, например:DIALOG_APP
«Построение маршрута» на поверхности SBERBOX;EMBEDDED_APP
«Построение маршрута» на вашей поверхности.
Внутри аппов можно указать разные интенты, вебхуки и другие настройки.
Как передать в поверхность ответ от навыка
Если настройки указаны правильно, то поверхность получит в ответе строку. Пример кода обработчика:
@Override
public void handle(@NotNull EmbeddedSmartAppDataCommand command,
@NotNull EmbeddedSmartAppMessageID messageId) {
// do something
}