Что такое оповещения и зачем они нужны
Оповещения в Google Apps Script – это способ взаимодействия со пользователем, позволяющий информировать его о текущем состоянии скрипта, запрашивать подтверждение действий или собирать небольшие объемы данных. Они играют важную роль в улучшении пользовательского опыта, делая взаимодействие с автоматизированными процессами более понятным и контролируемым. Оповещения позволяют разработчикам предоставлять обратную связь пользователю, сообщать об ошибках или подтверждать успешное выполнение операций.
Типы оповещений в Google Apps Script (UI, Browser)
В Google Apps Script есть два основных способа отображения оповещений:
UI Service: Этот сервис предоставляет более гибкие возможности для создания интерактивных интерфейсов, включая оповещения, диалоговые окна и боковые панели. Он предназначен для работы в контексте редакторов Google Docs, Sheets, Slides и Forms.
Browser.msgBox(): Более простой и быстрый способ отображения оповещений, который подходит для большинства базовых сценариев. Он выводит стандартное модальное окно в браузере.
Выбор между UI Service и Browser.msgBox() зависит от сложности требуемого взаимодействия и контекста, в котором работает скрипт.
Предварительные требования: настройка и авторизация
Прежде чем начать использовать оповещения, убедитесь, что у вас есть доступ к Google Apps Script и вы авторизовали скрипт для работы с необходимыми сервисами (например, Google Sheets или Docs). Для использования UI Service может потребоваться активация сервиса в редакторе скриптов.
Использование UI Service для создания оповещений
Основы UI Service и его ограничения
UI Service позволяет создавать более сложные и кастомизированные интерфейсы, чем Browser.msgBox(). Однако, он работает только в контексте редакторов Google Docs, Sheets, Slides и Forms. UI Service предоставляет возможности для создания диалоговых окон, боковых панелей и оповещений, интегрированных в интерфейс редактора. Ограничения включают в себя необходимость работы в контексте редактора и более сложный API.
Метод alert(): простой вывод сообщения
Для простого вывода сообщения можно использовать метод alert() объекта Ui. Сначала необходимо получить объект Ui, а затем вызвать метод alert().
/**
* Отображает простое оповещение с текстом.
*/
function showAlert() {
const ui = SpreadsheetApp.getUi();
ui.alert('Это простое оповещение!');
}
Настройка текста и заголовка оповещения
Метод alert() позволяет указывать заголовок и текст сообщения.
/**
* Отображает оповещение с заголовком и текстом.
*/
function showAlertWithTitle() {
const ui = SpreadsheetApp.getUi();
ui.alert('Внимание!', 'Это оповещение с заголовком и текстом.', ui.ButtonSet.OK);
}
Обратите внимание на ui.ButtonSet.OK. Этот параметр определяет набор кнопок, которые будут отображаться в оповещении. Доступные варианты: OK, OK_CANCEL, YES_NO, YES_NO_CANCEL.
Примеры использования UI Service для различных сценариев
Оповещение об успешном завершении операции:
/**
* Отображает оповещение об успешном завершении операции.
*/
function showSuccessAlert() {
const ui = SpreadsheetApp.getUi();
ui.alert('Успех!', 'Операция успешно завершена.', ui.ButtonSet.OK);
}
Оповещение об ошибке:
/**
* Отображает оповещение об ошибке.
* @param {string} errorMessage Текст ошибки.
*/
function showErrorAlert(errorMessage: string) {
const ui = SpreadsheetApp.getUi();
ui.alert('Ошибка!', errorMessage, ui.ButtonSet.OK);
}
Использование Browser.msgBox() для интерактивных оповещений
Основы Browser.msgBox() и его преимущества
Browser.msgBox() — это простой и удобный способ отображения оповещений в Google Apps Script. В отличие от UI Service, он не требует работы в контексте редактора и может быть использован в любом скрипте, который выполняется в браузере. Browser.msgBox() выводит стандартное модальное окно, которое блокирует дальнейшее выполнение скрипта до тех пор, пока пользователь не закроет его. Преимущества: простота использования, не требует контекста редактора.
Простой вывод сообщения с помощью Browser.msgBox()
Для вывода простого сообщения используйте следующий код:
/**
* Отображает простое сообщение с помощью Browser.msgBox().
*/
function showSimpleMsgBox() {
Browser.msgBox('Это простое сообщение из Browser.msgBox()!');
}
Добавление кнопок выбора в оповещение (Yes/No, OK/Cancel)
Browser.msgBox() позволяет добавлять кнопки выбора, такие как