Экземпляр пользовательского интерфейса для приложения Google, позволяющий скрипту добавлять такие функции, как меню, диалоги и боковые панели. Скрипт может взаимодействовать с пользовательским интерфейсом только для текущего открытого экземпляра редактора и только в том случае, если скрипт привязан к этому редактору.
// Display a dialog box with a title, message, input field, and "Yes" and "No" // buttons. The user can also close the dialog by clicking the close button in // its title bar. const ui = SpreadsheetApp.getUi(); const response = ui.prompt( 'Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO, ); // Process the user's response. if (response.getSelectedButton() === ui.Button.YES) { Logger.log('The user\'s name is %s.', response.getResponseText()); } else if (response.getSelectedButton() === ui.Button.NO) { Logger.log('The user didn\'t want to provide a name.'); } else { Logger.log('The user clicked the close button in the dialog\'s title bar.'); }
Характеристики
| Свойство | Тип | Описание |
|---|---|---|
Button | Button | Перечисление, представляющее собой заранее определенные локализованные кнопки диалогового окна, возвращаемые всплывающим окном или Prompt Response.getSelectedButton() , указывающее, на какую кнопку в диалоговом окне нажал пользователь. |
Button Set | Button Set | Перечисление, представляющее собой заранее определенные локализованные наборы из одной или нескольких кнопок диалогового окна, которые можно добавить в оповещение или подсказку . |
Методы
| Метод | Тип возвращаемого значения | Краткое описание |
|---|---|---|
alert(prompt) | Button | Открывает диалоговое окно в редакторе пользователя с заданным сообщением и кнопкой «ОК». |
alert(prompt, buttons) | Button | Открывает диалоговое окно в редакторе пользователя с заданным сообщением и набором кнопок. |
alert(title, prompt, buttons) | Button | Открывает диалоговое окно в редакторе пользователя с заданным заголовком, сообщением и набором кнопок. |
create Addon Menu() | Menu | Создает конструктор, который можно использовать для вставки подменю в меню расширений редактора. |
create Menu(caption) | Menu | Создает конструктор, который можно использовать для добавления меню в пользовательский интерфейс редактора. |
prompt(prompt) | Prompt Response | Открывает диалоговое окно ввода в редакторе пользователя с заданным сообщением и кнопкой «ОК». |
prompt(prompt, buttons) | Prompt Response | Открывает диалоговое окно ввода в редакторе пользователя с заданным сообщением и набором кнопок. |
prompt(title, prompt, buttons) | Prompt Response | Открывает диалоговое окно ввода в редакторе пользователя с заданным заголовком, сообщением и набором кнопок. |
show Modal Dialog(userInterface, title) | void | Открывает модальное диалоговое окно в редакторе пользователя с пользовательским содержимым, созданным на стороне клиента. |
show Modeless Dialog(userInterface, title) | void | Открывает немодальное диалоговое окно в редакторе пользователя с пользовательским содержимым на стороне клиента. |
show Sidebar(userInterface) | void | Открывает боковую панель в редакторе пользователя с пользовательским контентом, созданным на стороне клиента. |
Подробная документация
alert(prompt)
Открывает диалоговое окно в редакторе пользователя с заданным сообщением и кнопкой «ОК». Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .
// Display "Hello, world" in a dialog box with an "OK" button. The user can also // close the dialog by clicking the close button in its title bar. SpreadsheetApp.getUi().alert('Hello, world');
Параметры
| Имя | Тип | Описание |
|---|---|---|
prompt | String | Сообщение, которое будет отображено в диалоговом окне. |
Возвращаться
Button — кнопка, на которую нажал пользователь.
alert(prompt, buttons)
Открывает диалоговое окно в редакторе пользователя с заданным сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .
// Display a dialog box with a message and "Yes" and "No" buttons. The user can // also close the dialog by clicking the close button in its title bar. const ui = SpreadsheetApp.getUi(); const response = ui.alert( 'Are you sure you want to continue?', ui.ButtonSet.YES_NO, ); // Process the user's response. if (response === ui.Button.YES) { Logger.log('The user clicked "Yes."'); } else { Logger.log( 'The user clicked "No" or the close button in the dialog\'s title bar.', ); }
Параметры
| Имя | Тип | Описание |
|---|---|---|
prompt | String | Сообщение, которое будет отображено в диалоговом окне. |
buttons | Button Set | Кнопка, предназначенная для отображения в диалоговом окне. |
Возвращаться
Button — кнопка, на которую нажал пользователь.
alert(title, prompt, buttons)
Открывает диалоговое окно в редакторе пользователя с заданным заголовком, сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .
// Display a dialog box with a title, message, and "Yes" and "No" buttons. The // user can also close the dialog by clicking the close button in its title bar. const ui = SpreadsheetApp.getUi(); const response = ui.alert( 'Confirm', 'Are you sure you want to continue?', ui.ButtonSet.YES_NO, ); // Process the user's response. if (response === ui.Button.YES) { Logger.log('The user clicked "Yes."'); } else { Logger.log( 'The user clicked "No" or the close button in the dialog\'s title bar.', ); }
Параметры
| Имя | Тип | Описание |
|---|---|---|
title | String | Заголовок, отображаемый над диалоговым окном. |
prompt | String | Сообщение, которое будет отображено в диалоговом окне. |
buttons | Button Set | Кнопка, предназначенная для отображения в диалоговом окне. |
Возвращаться
Button — кнопка, на которую нажал пользователь.
createAddonMenu()
Создает конструктор, который можно использовать для вставки подменю в меню расширений редактора. Меню фактически не будет обновляться до вызова метода Menu.addToUi() . Если скрипт работает как надстройка, имя подменю совпадает с именем надстройки в веб-магазине; если скрипт привязан к документу напрямую, имя подменю совпадает с именем скрипта. Для получения дополнительной информации см. руководство по меню .
// Add an item to the add-on menu, under a sub-menu whose name is set // automatically. function onOpen(e) { SpreadsheetApp.getUi() .createAddonMenu() .addItem('Show', 'showSidebar') .addToUi(); }
Возвращаться
Menu — Новый конструктор меню.
createMenu(caption)
Создает конструктор, который можно использовать для добавления меню в пользовательский интерфейс редактора. Меню фактически не будет добавлено до вызова Menu.addToUi() . Для получения дополнительной информации см. руководство по меню . Метка для меню верхнего уровня должна быть написана с заглавной буквы (все основные слова должны быть написаны с заглавной буквы), хотя метка для подменю должна быть написана с заглавной буквы (только первое слово должно быть написано с заглавной буквы). Если скрипт опубликован как дополнение , параметр caption игнорируется, и меню добавляется как подменю меню «Расширения», что эквивалентно методу createAddonMenu() .
// Add a custom menu to the active document, including a separator and a // sub-menu. function onOpen(e) { SpreadsheetApp.getUi() .createMenu('My Menu') .addItem('My menu item', 'myFunction') .addSeparator() .addSubMenu( SpreadsheetApp.getUi() .createMenu('My sub-menu') .addItem('One sub-menu item', 'mySecondFunction') .addItem('Another sub-menu item', 'myThirdFunction'), ) .addToUi(); }
Параметры
| Имя | Тип | Описание |
|---|---|---|
caption | String | Заголовок меню: для меню верхнего уровня все основные слова пишутся с заглавной буквы, для подменю — только первое слово. |
Возвращаться
Menu — Новый конструктор меню.
prompt(prompt)
Открывает диалоговое окно ввода в редакторе пользователя с заданным сообщением и кнопкой «ОК». Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .
// Display a dialog box with a message, input field, and an "OK" button. The // user can also close the dialog by clicking the close button in its title bar. const ui = SpreadsheetApp.getUi(); const response = ui.prompt('Enter your name:'); // Process the user's response. if (response.getSelectedButton() === ui.Button.OK) { Logger.log('The user\'s name is %s.', response.getResponseText()); } else { Logger.log('The user clicked the close button in the dialog\'s title bar.'); }
Параметры
| Имя | Тип | Описание |
|---|---|---|
prompt | String | Сообщение, которое будет отображено в диалоговом окне. |
Возвращаться
PromptResponse — представление ответа пользователя.
prompt(prompt, buttons)
Открывает диалоговое окно ввода в редакторе пользователя с заданным сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .
// Display a dialog box with a message, input field, and "Yes" and "No" buttons. // The user can also close the dialog by clicking the close button in its title // bar. const ui = SpreadsheetApp.getUi(); const response = ui.prompt('May I know your name?', ui.ButtonSet.YES_NO); // Process the user's response. if (response.getSelectedButton() === ui.Button.YES) { Logger.log('The user\'s name is %s.', response.getResponseText()); } else if (response.getSelectedButton() === ui.Button.NO) { Logger.log('The user didn\'t want to provide a name.'); } else { Logger.log('The user clicked the close button in the dialog\'s title bar.'); }
Параметры
| Имя | Тип | Описание |
|---|---|---|
prompt | String | Сообщение, которое будет отображено в диалоговом окне. |
buttons | Button Set | Кнопка, предназначенная для отображения в диалоговом окне. |
Возвращаться
PromptResponse — представление ответа пользователя.
prompt(title, prompt, buttons)
Открывает диалоговое окно ввода в редакторе пользователя с заданным заголовком, сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .
// Display a dialog box with a title, message, input field, and "Yes" and "No" // buttons. The user can also close the dialog by clicking the close button in // its title bar. const ui = SpreadsheetApp.getUi(); const response = ui.prompt( 'Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO, ); // Process the user's response. if (response.getSelectedButton() === ui.Button.YES) { Logger.log('The user\'s name is %s.', response.getResponseText()); } else if (response.getSelectedButton() === ui.Button.NO) { Logger.log('The user didn\'t want to provide a name.'); } else { Logger.log('The user clicked the close button in the dialog\'s title bar.'); }
Параметры
| Имя | Тип | Описание |
|---|---|---|
title | String | Заголовок, отображаемый над диалоговым окном. |
prompt | String | Сообщение, которое будет отображено в диалоговом окне. |
buttons | Button Set | Кнопка, предназначенная для отображения в диалоговом окне. |
Возвращаться
PromptResponse — представление ответа пользователя.
showModalDialog(userInterface, title)
Открывает модальное диалоговое окно в редакторе пользователя с пользовательским содержимым на стороне клиента. Этот метод не приостанавливает выполнение серверного скрипта, пока диалоговое окно открыто. Для взаимодействия с серверным скриптом клиентский компонент должен выполнять асинхронные обратные вызовы, используя API google.script для HtmlService . Чтобы закрыть диалоговое окно программно, вызовите google.script.host.close() на стороне клиента веб-приложения HtmlService . Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .
Модальные диалоговые окна не позволяют пользователю взаимодействовать ни с чем, кроме самого диалога. В отличие от них, немодальные диалоговые окна и боковые панели позволяют пользователю взаимодействовать с редактором. Практически во всех случаях модальное диалоговое окно или боковая панель являются лучшим выбором, чем немодальное диалоговое окно.
// Display a modal dialog box with custom HtmlService content. const htmlOutput = HtmlService .createHtmlOutput( '<p>A change of speed, a change of style...</p>', ) .setWidth(250) .setHeight(300); SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'My add-on');
Параметры
| Имя | Тип | Описание |
|---|---|---|
user Interface | Object | Html Output , представляющий собой интерфейс для отображения. |
title | String | Заголовок диалогового окна переопределяет любой заголовок, установленный путем вызова set Title() для объекта user Interface . |
Авторизация
Для скриптов, использующих этот метод, требуется авторизация в одной или нескольких из следующих областей действия :
-
https://www.googleapis.com/auth/script.container.ui
showModelessDialog(userInterface, title)
Открывает немодальное диалоговое окно в редакторе пользователя с пользовательским содержимым на стороне клиента. Этот метод не приостанавливает выполнение серверного скрипта, пока диалоговое окно открыто. Для взаимодействия с серверным скриптом клиентский компонент должен выполнять асинхронные обратные вызовы, используя API google.script для HtmlService . Чтобы закрыть диалоговое окно программно, вызовите google.script.host.close() на стороне клиента веб-приложения HtmlService . Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .
Немодальные диалоги позволяют пользователю взаимодействовать с редактором, скрытым за диалогом. Модальные диалоги , напротив, этого не делают. Практически во всех случаях модальный диалог или боковая панель являются лучшим выбором, чем немодальный диалог.
// Display a modeless dialog box with custom HtmlService content. const htmlOutput = HtmlService .createHtmlOutput( '<p>A change of speed, a change of style...</p>', ) .setWidth(250) .setHeight(300); SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'My add-on');
Параметры
| Имя | Тип | Описание |
|---|---|---|
user Interface | Object | Html Output , представляющий собой интерфейс для отображения. |
title | String | Заголовок диалогового окна переопределяет любой заголовок, установленный путем вызова set Title() для объекта user Interface . |
Авторизация
Для скриптов, использующих этот метод, требуется авторизация в одной или нескольких из следующих областей действия :
-
https://www.googleapis.com/auth/script.container.ui
showSidebar(userInterface)
Открывает боковую панель в редакторе пользователя с пользовательским контентом на стороне клиента. Этот метод не приостанавливает выполнение серверного скрипта, пока боковая панель открыта. Для взаимодействия с серверным скриптом клиентский компонент должен выполнять асинхронные обратные вызовы, используя API google.script для HtmlService . Чтобы закрыть боковую панель программно, вызовите google.script.host.close() на стороне клиента веб-приложения HtmlService . Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .
Боковая панель отображается справа от редактора для пользователей, использующих языки с письмом слева направо, и слева от редактора для языков с письмом справа налево. Все боковые панели, отображаемые скриптами, имеют ширину 300 пикселей.
// Display a sidebar with custom HtmlService content. const htmlOutput = HtmlService .createHtmlOutput( '<p>A change of speed, a change of style...</p>', ) .setTitle('My add-on'); SpreadsheetApp.getUi().showSidebar(htmlOutput);
Параметры
| Имя | Тип | Описание |
|---|---|---|
user Interface | Object | Html Output , представляющий собой интерфейс для отображения. |
Авторизация
Для скриптов, использующих этот метод, требуется авторизация в одной или нескольких из следующих областей действия :
-
https://www.googleapis.com/auth/script.container.ui