无法从加载项启动UI

时间:2019-12-29 19:19:46

标签: google-apps-script google-apps-script-addon

我正在构建一个插件,该插件应该在所有编辑器(幻灯片,文档和表格)中都可以使用,但是在使用此插件时会陷入事物的初始部分-

consteval

其背后的想法是, ui 变量可以是任何有效的引用,具体取决于附件所使用的文档类型。

但是,虽然这在Sheets上有效(假设这是因为它是第一个),但在其他2上却出现了以下错误-

  

您无权执行该操作。

关于如何克服这一问题的任何建议都会很棒。谢谢。

1 个答案:

答案 0 :(得分:2)

是的,几天前我有一个similar problem,但我认为我们没有在此处发布最终解决方案,所以这是我为克服提出的问题所做的工作-

var fileUI;
try {
  fileUI = SpreadsheetApp.getUi();
} catch (e) {
  try {
    fileUI = DocumentApp.getUi();
  } catch (e) {
    try {
      fileUI = SlidesApp.getUi();
    } catch (e) {}
  }
}

function onInstall(e) {
  onOpen(e);
}

function onOpen(e) {
  if (fileUI) {
    var menu = fileUI.createAddonMenu();
    if (e && e.authMode == ScriptApp.AuthMode.NONE) {
      menu.addItem('Please Login', 'login');
    } else {
      menu.addItem('Action 1', 'action');
      menu.addItem('Refresh', 'refresh');
    }
    menu.addToUi();
  }
}

基本上,根据TheMaster的建议,我使用了try {} catch() {}方法来使它工作。

希望这对您也有帮助。