Кнопки

На устройствах с экраном вы можете предоставить пользователю дополнительные возможности для общения с навыком: давайте подсказки, побуждайте к действию, используйте кликабельные картинки.

В видеоуроке ниже разработчики рассказывают о реализации кнопок в ответе навыка.

Кнопки после ответа

Текстовые саджесты выводятся после основного ответа навыка, описанного в свойствах response.text и response.card. Нажатие кнопки может обозначать вариант развития диалога, активировать ссылку на страницу в интернете или выполнить заданный программный код. Вы также можете добавить в текст кнопки эмодзи.

Чтобы добавить кнопки, в ответе навыка задайте свойство response.buttons.

{
  "response": {
    ...
    "buttons": [
        {
            "title": "Надпись на кнопке �",
            "payload": {},
            "url": "https://example.com/",
            "hide": true
        }
    ],
    ...
  },
Описание элементов

buttons — кнопки, которые следует показать пользователю.

title — текст кнопки, обязательный атрибут. Если для кнопки не указано свойство url, текст кнопки будет отправлен навыку как реплика пользователя. Максимальная длина 64 символа.

url — адрес страницы, которую должна открыть кнопка. Максимальный объем ссылки 1024 байта.

payload — произвольный код на JSON, который Яндекс Диалоги должны отправить обработчику при нажатии. Максимальный объем кода 4096 байт.

hide — признак того, что кнопку нужно убрать после следующей реплики пользователя. Допустимые значения:

  • false — кнопка должна оставаться активной (значение по умолчанию);
  • true — кнопку нужно скрывать после нажатия.
Пример ответа навыка

Пример ответа навыка с кнопкой

Изображение, на которое можно нажать

Чтобы изображение в ответе навыка реагировало на нажатие, задайте ему свойство response.card.button.

{
  "response": {
    ...
    "card": {
      "type": "BigImage",
      ...
      "button": {
        "text": "Надпись на кнопке",
        "url": "http://example.com/",
        "payload": {}
      }
    }
  },
Описание элементов

text — текст, который будет отправлен навыку по нажатию на изображение в качестве команды пользователя. Максимум 64 символа.

url — URL, который должен открываться по нажатию изображения. Максимум 1024 байта. Если свойство url не указано, навык получит значение свойства text.

payload — произвольный код на JSON, который Яндекс Диалоги должны отправить обработчику при нажатии. Максимальный объем кода 4096 байт.

Пример ответа навыка

Пример ответа навыка с изображением, на которое можно нажать

Кнопки под списком изображений

Если вам нужно вывести кнопки внизу списка изображений, задайте свойство response.card.footer.button.

{
  "response": {
    ...
    "card": {
      "type": "ItemsList",
      ...
      "footer": {
        "text": "Текст блока под изображением.",
        "button": {
          "text": "Надпись на кнопке",
          "url": "https://example.com/",
          "payload": {}
        }
      }
    },
Описание элементов

footer — кнопки под списком изображений. Игнорируется для типа карточки ImageGallery.

text — текст первой кнопки, обязательное свойство. Максимальная длина 64 символа.

button — дополнительная кнопка для списка изображений.

text — текст кнопки, обязателен для каждой кнопки. Максимум 64 символа. Если для кнопки не указано свойство url, по нажатию текст кнопки будет отправлен навыку как реплика пользователя.

url — URL, который должен открываться по нажатию изображения. Максимум 1024 байта.

payload — произвольный код на JSON, который Яндекс Диалоги должны отправить обработчику при нажатии. Максимальный объем кода 4096 байт.

Пример ответа навыка

Пример ответа навыка с кнопками под списком изображений

Полезные видео

Разработка прототипа голосового приложения

Предыдущая
Следующая