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

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

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

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

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

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

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

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

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

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

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