首页 文章

使用Google Web App扩展Google Spreadsheets UI

提问于
浏览
4

我为Google Spreadsheets创建了一个脚本,这个脚本只是添加了一个新的菜单项,如Custom Menu Items in a Spreadsheet所述 . 然后我将此脚本部署为Web应用程序,并且我希望安装该应用程序的所有用户都能够看到新的菜单项 . 而且我在这一点上陷入困境 .

据我所知,当您将脚本部署为Web App时,onOpen函数会失去它的含义 . 所以,在doGet中我为onOpen事件创建自定义触发器,将myOnOpen处理程序附加到它并在myOnOpen中添加一个菜单项,但该项目没有显示 .

这是我的代码:

function doGet() {
    var newSheet = SpreadsheetApp.create("new sheet");
    var newId = newSheet.getId();
    ScriptProperties.setProperty('newId', newId); 

    ScriptApp.newTrigger("myOnOpen")
        .forSpreadsheet(newId)
        .onOpen()
        .create();
};

function myOnOpen() {
    var newId = ScriptProperties.getProperty('newId');
    var sheet = SpreadsheetApp.openById(newId);

    var entries = [ { name : "Show bingo", functionName : "Bingo" } ];
    sheet.addMenu("My Menu", entries);
};

function Bingo() {
    Browser.msgBox("Bingo!");
};

因此,当安装该应用的用户打开“新工作表”电子表格时,他看不到“我的菜单” . 我在这做错了什么?为什么菜单项不显示?在一天结束时,我想创建一个Web应用程序,它扩展了Google Spreadsheets UI以及其他菜单和对话框 .

欢迎任何建议 . 谢谢!

1 回答

  • 0

    将脚本部署为Web应用程序时,Web应用程序的用户只能看到来自doGet功能的内容 . 您可以使用UiAppHtmlService创建内容,并返回此内容以在浏览器中呈现 . 您的新菜单项附加到电子表格中,因此只有当用户转到电子表格本身时才会显示它们(激活onOpen触发器等) .

相关问题