如果 getUI 方法失败,如何通知用户 Google 脚本?

How to notify user of a Google Script if the getUI method fails?

在为多个 non-programmer 用户编写一个简单的 Google 脚本时,我注意到一个奇怪的错误。如果浏览器打开时间过长,有时文档不再 link 到脚本。然后初始方法失败。它使脚本崩溃。这发生在我定义 getUI:

的第二行
var ui = DocumentApp.getUi();

我做了一个 try-catch 来处理这个错误,但我不知道如何提醒或通知用户刷新他们的浏览器 session。我无法使用 getUI 评估 UI,因此我无法使用 html 或警报功能来提示用户。没有 UI 方法,有没有办法告诉他们信息?比如标题、提示、提示等?

关于如何通知用户刷新 session 有什么想法吗?

来自问题:

Without the UI methods, is there a way to tell them info? Like a title, hint, tip, etc?

在 Google 个工作表中,您可能会使用 SpreadsheetApp.toast。

另一种选择是指定文件中的元素、Google 表格中的范围、Google 文档中的段落、Google 幻灯片中的幻灯片或形状,用于向用户显示消息。

在 Google 表格中,可以“激活”一个范围,当您想让用户注意它时,这可能会有所帮助。


显然您遇到了一个问题(无法向用户显示消息),原因有两种。

Google Apps 脚本有配额,其中一个配额是执行时间限制,免费帐户 6 分钟,Workspace 帐户 30 分钟。 Ui.alert() 和 Ui.prompt() 以及 Browser.msgBox() 维持脚本执行等待用户响应。不幸的是,现在有办法捕获时间执行错误,并且无法在脚本等待用户响应时以编程方式中断执行。

使用 HTML 服务创建的 AFAIK 用户界面没有这个问题(由于等待用户响应的时间超过执行时间限制),所以如果您遇到问题,您可能有与 client-server 通信相关的问题,因此请查看执行日志和 Web 浏览器控制台消息。

相关

  • Google app script timeout ~ 5 minutes?
  • How to handle timeout error if user nevers click on alert?(暂无回答)
  • Browser.msgBox(prompt) gives a timeout error