Возможно ли отправить и вернуть значение из скрипта приложения Google на страницу html без рендеринга вывода html? - PullRequest
1 голос
/ 06 августа 2020

После долгих обсуждений и исследований, кадрирование изображений с помощью скриптов Google APP невозможно. Поэтому я решил попробовать один с помощью Canvas API.

Я пытаюсь передать значение из серверного скрипта (.gs) в файл HTML и вернуть значение в серверном скрипте, не открывая HTML вывод, как на боковой панели или в диалоговом окне «Модель / Без модели». Вы можете беззвучно произнести вызов HTML, завершить процесс и вернуть значение методу серверного скрипта.

Я пробовал, но getFromFileArg() не работает, когда я запускаю callToHtml().

Возможно ли это с помощью приведенного ниже сценария? что вы предложите?

Сторона сервера (.gs)

function callToHtml() {
    var ui = SlidesApp.getUi();
    var htmlTemp = HtmlService.createTemplateFromFile('crop_img');
    htmlTemp["data"] = pageElements.asImage().getBlob();
    var htmlOutput = htmlTemp.evaluate();
}

function getFromFileArg(data) {
  Logger.log(data);
}

crop_img. html шаблон:

<script>

     var data = <?= data ?>;

     //call the server script method
     google.script.run
       .withSuccessHandler(
           function(result, element) {
           element.disabled = false;
       })
       .withFailureHandler(
           function(msg, element) {
           console.log(msg);
           element.disabled = false;
       })
       .withUserObject(this)
       .getFromFileArg(data);


</script>

1 Ответ

0 голосов
/ 06 августа 2020

Вы не можете «тихо» вызвать HTML таким образом, нет.

HTML необходимо go пользователю, и пользователь находится не внутри вашего веб-приложения, а в Интернете app (слайды), поэтому вы должны играть по их правилам.

Вам необходимо использовать один из доступных методов UI , например showSidebar. У вас может быть отображаемый HTML счетчик или сообщение типа «обрабатывается ...» во время выполнения JavaScript.

function callToHtml() {
    var ui = SlidesApp.getUi();
    var htmlTemp = HtmlService.createTemplateFromFile('crop_img');
    htmlTemp["data"] = pageElements.asImage().getBlob();
    ui.showSidebar(htmlTemp.evaluate());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...