Дополнительные действия

Дополнительные действия обеспечивают интерактивное поведение виджетов . Создавая действие, вы определяете, что произойдет, когда пользователь выберет или обновит виджет.

В большинстве случаев вы можете определить дополнительные действия с помощью объектов Action , предоставляемых службой Apps Script Card . Каждое Action связывается с функцией обратного вызова при его создании. Вы реализуете функцию обратного вызова для выполнения желаемых шагов при взаимодействии пользователя с виджетом. Вы также должны связать Action с виджетом с помощью соответствующей функции обработчика виджета , которая определяет, какой тип взаимодействия запускает обратный вызов Action .

Настройте виджет с Action используя следующий общий процесс:

  1. Создайте объект Action , указав функцию обратного вызова, которую он должен выполнить, а также все необходимые параметры.
  2. Вызовите соответствующую функцию обработчика виджета для виджета, используя объект Action .
  3. Реализуйте функцию обратного вызова для реализации требуемого поведения.

Функции обработчика виджетов

Чтобы связать виджет с определенным Action или другим поведением, вы используете функцию обработчика виджета. Функция обработчика определяет, какой тип взаимодействия (например, нажатие виджета или редактирование текстового поля) запускает поведение действия. Функция обработчика также определяет, какие шаги выполняет пользовательский интерфейс, если таковые имеются, после завершения действия.

В следующей таблице перечислены различные типы обработчиков для виджетов и то, с какими виджетами они используются:

Функция обработчика Запускает действие Применимые виджеты Описание
setOnChangeAction() Значение виджета меняется DatePicker
DateTimePicker
SelectionInput
Switch
TextInput TimePicker
Устанавливает Action , которое выполняет функцию скрипта приложений, когда виджет теряет фокус, например, когда пользователь вводит текст в поле ввода и нажимает Enter. Обработчик автоматически передает объект события вызываемой им функции. При желании в этот объект события можно вставить дополнительную информацию о параметрах.
setOnClickAction() Пользователь нажимает на виджет CardAction
Image
ImageButton
DecoratedText
TextButton
Устанавливает Action , которое выполняет функцию Apps Script, когда пользователь нажимает на виджет. Обработчик автоматически передает объект события в вызываемую им функцию. В этот объект события можно вставить дополнительную информацию о параметрах.
setComposeAction() Пользователь нажимает на виджет CardAction
Image
ImageButton
DecoratedText
TextButton
Gmail-специфично. Устанавливает Action , которое создает черновик письма, а затем представляет этот черновик пользователю в окне создания пользовательского интерфейса Gmail. Вы можете создать черновик как новое сообщение или ответ на открытое сообщение в Gmail. Когда обработчик вызывает функцию обратного вызова для создания черновика, он передает объект события в функцию обратного вызова. Подробнее см. в разделе Создание черновиков сообщений .
setOnClickOpenLinkAction() Пользователь нажимает на виджет CardAction
Image
ImageButton
DecoratedText
TextButton
Устанавливает Action для открытия URL, когда пользователь щелкает виджет. Используйте этот обработчик, когда необходимо создать URL или другие действия должны быть выполнены до открытия ссылки; в противном случае обычно проще использовать setOpenLink() . Вы можете открыть URL только в новом окне. При закрытии вы можете заставить пользовательский интерфейс перезагрузить надстройку.
setOpenLink() Пользователь нажимает на виджет CardAction
Image
ImageButton
DecoratedText
TextButton
Открывает URL-адрес напрямую, когда пользователь нажимает на виджет. Используйте этот обработчик, когда вы знаете URL-адрес и вам нужно только открыть его; в противном случае используйте setOnClickOpenLinkAction() . Вы можете открыть URL-адрес в новом окне или в наложении. При закрытии вы можете заставить пользовательский интерфейс перезагрузить надстройку.
setSuggestionsAction() Пользователь вводит текст в поле ввода. TextInput Устанавливает Action , которое выполняет функцию Apps Script, когда пользователь вводит текст в виджет ввода текста. Обработчик автоматически передает объект события в вызываемую им функцию. Подробнее см. в разделе Предложения автозаполнения для ввода текста .

Функции обратного вызова

Функции обратного вызова выполняются при срабатывании Action . Поскольку функции обратного вызова являются функциями скрипта приложений, вы можете заставить их делать почти все, что может делать любая другая функция скрипта.

Функция обратного вызова иногда возвращает определенный объект ответа. Эти типы ответов указывают на дополнительные операции, которые должны произойти после завершения выполнения функции обратного вызова, например, отображение новой карты или представление предложений автозаполнения. Когда ваша функция обратного вызова должна вернуть определенный объект ответа, вы используете класс-конструктор в службе Card для создания этого объекта.

В следующей таблице показано, когда ваши функции обратного вызова должны возвращать определенный объект ответа для определенных действий. Все эти действия не зависят от конкретного хост-приложения, которое расширяет надстройка:

Действие предпринято Функция обратного вызова должна возвращать
Навигация между картами ActionResponse
Отобразить Notification ActionResponse
Открыть ссылку с помощью setOnClickOpenLinkAction() ActionResponse
Отображение предложений автозаполнения SuggestionResponse
Используйте универсальное действие UniversalActionResponse
Другие действия Ничего

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

Объекты событий действия

Когда ваш add-on запускает Action , пользовательский интерфейс автоматически создает объект события JSON и передает его в качестве аргумента функции обратного вызова Action . Этот объект события содержит информацию о текущем клиентском контексте пользователя, например текущие значения всех интерактивных виджетов в отображаемой карточке.

Объекты событий действия имеют определенную структуру JSON, которая организует информацию, которую они содержат. Та же структура используется, когда триггер домашней страницы срабатывает для создания домашней страницы или когда контекстный триггер срабатывает для обновления отображения надстройки.

Полное объяснение структуры объекта события см. в разделе Объекты событий.