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

Кнопки, изображения, подсказки в Диалогах: различия между версиями

Материал из Wiki yaboard
Нет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 14: Строка 14:




Для начала условимся называть кнопки c параметром <span class="tocopy">"hide": true</span> '''подсказками''' (suggests), и напомним, за что согласно [//yandex.ru/dev/dialogs/alice/doc/protocol-docpage/ официальной справке] отвечают два других важных параметра:
К концу статьи мы научимся делать такие красивые меню, а для начала условимся называть кнопки c параметром <span class="tocopy">"hide": true</span> '''подсказками''' (suggests), и напомним, за что согласно [//yandex.ru/dev/dialogs/alice/doc/protocol-docpage/ официальной справке] отвечают два других важных параметра:
* '''url''' - ссылка, которую надо открыть при клике по картинке (не длиннее 1024 байт).
* '''url''' - ссылка, которую надо открыть при клике по картинке (не длиннее 1024 байт).
* '''payload''' - любые данные в JSON-формате, которые по клику будут отправлены в Навык (не более 4096 байт).
* '''payload''' - любые данные в JSON-формате, которые по клику будут отправлены в Навык (не более 4096 байт).
Строка 187: Строка 187:




[[ | border ]]


{{#spoiler:show=Показать ответ | hide=Спрятать ответ |  
{{#spoiler:show=Показать ответ | hide=Спрятать ответ |  
Строка 442: Строка 441:


{{#spoiler:show=Показать ответ | hide=Спрятать ответ |  
{{#spoiler:show=Показать ответ | hide=Спрятать ответ |  
{  
{  
   "response": {
   "response": {
     "text": "Example reply for skill",
     "text": "Example reply for skill",
Строка 478: Строка 477:
Поведение кнопок полностью соответствует предыдущим примерам и зависит от наличия/отсутствия параметров url/payload.
Поведение кнопок полностью соответствует предыдущим примерам и зависит от наличия/отсутствия параметров url/payload.


Удачи в создании красивых и полезных Навыков!




[[Category:Яндекс.Диалоги]] [[Category:FAQ(ЧАВО)]]
[[Category:FAQ(ЧАВО)]]
[[Category:Диалоги]]

Текущая версия от 08:23, 23 ноября 2020


Статья представляет собой адаптированный текст Стаса Серебренникова "Разбираем кнопки в Яндекс.Диалогах" и отлично дополняет документацию для диалогов Алисы простыми и наглядными примерами, включая нюансы отображения, а также запросы и ответы в json-формате.


К концу статьи мы научимся делать такие красивые меню, а для начала условимся называть кнопки c параметром "hide": true подсказками (suggests), и напомним, за что согласно официальной справке отвечают два других важных параметра:

  • url - ссылка, которую надо открыть при клике по картинке (не длиннее 1024 байт).
  • payload - любые данные в JSON-формате, которые по клику будут отправлены в Навык (не более 4096 байт).

Кнопка с url и payload

При нажатии откроется ссылка, указанная в параметре url.

<button type="button" class="spoilers-button" aria-expanded="false">Показать ответ (JSON)</button>


При нажатии кнопки диалог остановится и отправит в навык такой запрос:

<button type="button" class="spoilers-button" aria-expanded="false">Показать запрос</button>


Этот запрос можно использовать для сбора метрики (пользователь открыл сайт нажатием именно этой кнопки).

 Во время написания статьи обнаружен баг: запрос от кнопки с payload + url приходил только от Алисы в Яндекс.Браузере.
 Из мобильных клиентов запросы не приходили.

Подсказка с url и payload

При нажатии откроется ссылка, указанная в параметре url, и будет отправлен в навык запрос payload.

<button type="button" class="spoilers-button" aria-expanded="false">Показать ответ</button>
Как видим, ответ отличается только одной строкой ("hide": true), и в запросе здесь проявляется тот же баг с мобильными клиентами.

Кнопка с url

Кнопка и подсказка без payload визуально ничем не отличается от предыдущей.

Их различие - в действиях: по нажатию кнопка просто откроет ссылку (в навык ничего не отправится).

<button type="button" class="spoilers-button" aria-expanded="false">Показать ответ</button>

Подсказка с url

Подсказка без payload тоже не отправляет ничего в навык.

<button type="button" class="spoilers-button" aria-expanded="false">Показать ответ</button>

Кнопка с payload

<button type="button" class="spoilers-button" aria-expanded="false">Показать ответ</button>

В этом случае (указан только payload) запрос ButtonPressed приходит корректно со всех устройств:

<button type="button" class="spoilers-button" aria-expanded="false">Показать запрос</button>

Подсказка с payload

<button type="button" class="spoilers-button" aria-expanded="false">Показать ответ</button>

Так же, как в предыдущем случае, запрос приходит со всех устройств:

<button type="button" class="spoilers-button" aria-expanded="false">Показать запрос</button>

Галерея картинок в кнопках

У всех кнопок указан параметр url и payload, и их поведение аналогично кнопкам из пунктов 1 и 2.

<button type="button" class="spoilers-button" aria-expanded="false">Показать ответ</button>


При этом можно добавить и подсказки! Однако обычные кнопки добавить не получится, придется довольствоваться одной кнопкой в footer.

footer и header указывать необязательно.

Галерея картинок в кнопках с подсказками

Под списком картинок выводится подсказка.

<button type="button" class="spoilers-button" aria-expanded="false">Показать ответ</button>

В данном случае при нажатии на кнопку в чат отправится её текст, а в навык - запрос ButtonPressed с её payload.

Карточка с кнопкой и подсказкой

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

Как и для списка, для карточки тоже можно добавить подсказки. Обычные кнопки отображаться не будут.

<button type="button" class="spoilers-button" aria-expanded="false">Показать ответ</button>

Поведение кнопок полностью соответствует предыдущим примерам и зависит от наличия/отсутствия параметров url/payload.


Удачи в создании красивых и полезных Навыков!