Google Appscript Обновление WebApp - PullRequest
0 голосов
/ 14 марта 2020

Кто-нибудь знает эффективный способ запуска окна refre sh для развернутого веб-приложения Google Appscript с использованием Javascript?

Я искал и проверял варианты window.location.href = window.location.href, window.reload(true), et c.

Кажется, ничего не работает.

Единственный найденный мной обходной путь - создание скрытой ссылки на веб-адрес и использование команды .click() для перехода на ту же страницу (т. Е. Refre sh), но в последнее время это вызывающих проблемы, особенно потому, что теперь я должен отслеживать разные адреса ссылок.

У кого-нибудь есть лучшая альтернатива этому?

HTML:

<html>

<head>
  <title>Finance Mileage Entry</title>
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
  <base target="_top">
  <?!= include("page-css");?>
  <a id="refreshLink" href="<?= ScriptApp.getService().getUrl() ?>?v=home" style="display:none"></a>

JS:

function refresh(){
    var link = document.getElementById("refreshLink")
    link.click();
};

1 Ответ

1 голос
/ 16 марта 2020

Чтобы обновить sh веб-приложение, вы можете просто использовать Window.open (url, windowName) , например:

window.open("https://script.google.com/macros/s/{your-webapp-id}/exec", "_top");

Обновление:

Вы также можете получить URL сценария с помощью ScriptApp.getService (). GetUrl () , вместо того, чтобы писать его самостоятельно. Для этого вам необходимо получить эту информацию со стороны сервера (вы не можете получить доступ к классам, таким как ScriptApp со стороны клиента). Вы должны использовать google.script.run для выполнения серверных функций со стороны клиента:

function retrieveUrl() {
  google.script.run.withSuccessHandler(refresh).getUrl();
}

Таким образом, retrieveUrl выполнит функцию с именем getUrl из кода вашего сервера (.gs), который может выглядеть примерно так:

function getUrl() {
  return ScriptApp.getService().getUrl();
}

Наконец, когда getUrl успешно возвращается, обработчик success выполнит на стороне клиента функция с именем refresh (и ее возвращаемое значение - URL сценария - будет передано в качестве параметра):

function refresh(scriptUrl) {
  window.open(scriptUrl, "_top");
}

Ссылка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...