Interactive Canvas — это платформа, построенная на Google Assistant, которая позволяет разработчикам добавлять визуальные эффекты с эффектом присутствия в диалоговые действия. Этот визуальный опыт представляет собой интерактивное веб-приложение, которое Ассистент отправляет в качестве ответа пользователю во время разговора. В отличие от традиционных расширенных ответов , которые существуют в беседе с помощником, веб-приложение Interactive Canvas отображается как полноэкранное веб-представление.
Вам следует использовать Интерактивный холст, если вы хотите выполнить любое из следующих действий в своем действии:
- Создавайте полноэкранные визуальные эффекты
- Создание пользовательских анимаций и переходов
- Делайте визуализацию данных
- Создание пользовательских макетов и графических интерфейсов
Поддерживаемые устройства
Интерактивный холст в настоящее время доступен на следующих устройствах:
- Умные дисплеи
- Концентраторы Google Nest
Мобильные устройства Android
Как это работает
Действие, использующее интерактивное полотно, работает аналогично обычному диалоговому действию. У пользователя все еще есть диалог с помощником, чтобы достичь своей цели; однако вместо того, чтобы возвращать ответы в диалоге, интерактивное действие холста отправляет ответ пользователю, который открывает полноэкранное веб-приложение. Пользователь продолжает взаимодействовать с веб-приложением с помощью голоса или касаний, пока разговор не закончится.
В действии, использующем Interactive Canvas, есть несколько компонентов:
- Разговорное действие : действие, которое использует диалоговый интерфейс для выполнения запросов пользователя. Интерактивные действия холста используют веб-представления для отображения ответов вместо расширенных карточек или простых текстовых и голосовых ответов. Диалоговые действия используют следующие компоненты:
- Агент Dialogflow : проект в Dialogflow, который вы настраиваете для общения с пользователями Action.
- Выполнение : код, развернутый как веб-перехватчик, который реализует диалоговую логику для вашего агента Dialogflow и взаимодействует с вашим веб-приложением.
- Веб-приложение: внешнее веб-приложение с настраиваемыми визуальными элементами, которые ваше действие отправляет пользователям в ответ во время разговора. Вы создаете веб-приложение с использованием таких веб-стандартов, как HTML, JavaScript и CSS.
Диалоговое действие и веб-приложение взаимодействуют друг с другом, используя следующее:
- Interactive Canvas API : JavaScript API, который вы включаете в веб-приложение, чтобы обеспечить связь между веб-приложением и диалоговым действием.
-
HtmlResponse
: ответ, содержащий URL-адрес веб-приложения и данные для его передачи. Вы можете использовать клиентские библиотеки Node.js или Java для возвратаHtmlResponse
.
Чтобы проиллюстрировать, как работает Interactive Canvas, представьте себе гипотетическое действие Cool Colors , которое изменяет цвет экрана устройства на цвет, указанный пользователем. После того, как пользователь вызывает действие, поток выглядит следующим образом:
- Пользователь говорит
Turn the screen blue
устройству «Помощник». - Действия на платформе Google перенаправляют запрос пользователя в Dialogflow, чтобы он соответствовал намерению.
- Выполнение совпадающего намерения выполняется, и на устройство отправляется
HtmlResponse
. Устройство использует URL-адрес для загрузки веб-приложения, если оно еще не загружено. - Когда веб-приложение загружается, оно регистрирует обратные вызовы с помощью
interactiveCanvas
. Затем значение объектаdata
передается в зарегистрированный обратный вызовonUpdate
веб-приложения. В нашем примере выполнение отправляетHtmlResponse
сdata
, которые включают переменную со значениемblue
. - Пользовательская логика для вашего веб-приложения считывает значение
data
HtmlResponse
и вносит определенные изменения. В нашем примере это делает экран синим. -
interactiveCanvas
отправляет обновление обратного вызова на устройство.
Следующие шаги
Чтобы узнать, как создать действие интерактивного холста, см. страницу «Обзор сборки» .
Чтобы увидеть код полного интерактивного действия холста, см. пример .