Как вызвать функцию prompt () или alert () в скрипте приложения Google для веб-приложений? - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь разработать веб-сервис с помощью Google Appscript и попытался вызвать функцию ui.prompt () или Broswer.inputBox () в коде.Однако ни один из этих методов не сработал.Документация обоих сервисов ограничена классом SpreadsheetApp.Так есть ли способ, которым я мог бы вызвать prompt () со стороны сервера, или есть какой-нибудь способ обойти?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

Когда вы используете SpreadsheetApp.getUi(), вам предоставляется доступ к API, который позволяет интеграцию с веб-интерфейсом Google Sheets.

В качестве альтернативы, когда вы развертываете проект скрипта приложенийкак веб-приложение вы несете ответственность за предоставление пользовательского интерфейса с использованием класса HTMLService.В дополнение к справочной документации есть также вводное руководство и список лучших практик .

Чтобы ответить на ваш вопрос о представлении предупреждения, вот измененная версияпервого примера из документа передового опыта:

Code.gs

function doGet(request) {
  return HtmlService.createTemplateFromFile('Page')
      .evaluate();
}

function include(filename) {
  return HtmlService.createHtmlOutputFromFile(filename)
      .getContent();
}

Page.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <h1>Welcome</h1>
    <p>Please enjoy this helpful script.</p>
    <?!= include('JavaScript'); ?>
  </body>
</html>

Javascript.html

<script>
window.addEventListener('load', function() {
  alert('Page is loaded');
});
</script>

Если вы заполняете проект Apps Script этими файлами, развертываете его как веб-приложение и посещаете сгенерированный URL, Javascript будет выполнен в браузере и появится диалоговое окно с предупреждением.

0 голосов
/ 20 сентября 2019

В Google Apps Script, развернутом в виде веб-приложений, это невозможно, вместо этого используйте HTML / CSS / JavaScript (включая библиотеки / фреймворки)

...