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

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

В большинстве случаев вы можете определить дополнительные действия с помощью объектов 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 , которое выполняет функцию скрипта приложения, когда пользователь щелкает виджет. Обработчик автоматически передает объект события вызываемой функции. В этот объект события можно вставить дополнительную информацию о параметрах.
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 , которое выполняет функцию сценария приложения, когда пользователь вводит текст в виджет ввода текста. Обработчик автоматически передает объект события вызываемой функции. Дополнительные сведения см. в разделе «Предложения автозаполнения для ввода текста» .

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

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

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

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

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

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

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

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

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

См. «Объекты событий» для получения полного объяснения структуры объекта события.