У меня есть надстройка, ранее предназначавшаяся только для Документов Google, и я пытаюсь расширить набор функций, чтобы включить в нее Google Sheets. В режиме разработки я могу установить условие для определения, какой тип документа активен (документы или листы), а затем показать соответствующее меню. Когда я публикую sh последнюю версию надстройки, меню надстроек перестает работать как в документах, так и в листах.
Я предполагаю, что это связано с разрешениями вокруг "onOpen () "но я не уверен, как еще справиться с этим. G Suite Marketplace позволяет указать, что надстройка поддерживает несколько редакторов.
Вот код, который работает в разработке:
function onOpen(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var doc = DocumentApp.getActiveDocument();
if(ss != null && ss != undefined) {
var sheetsUI = SpreadsheetApp.getUi();
sheetsUI.createAddonMenu()
.addItem('Name', 'function')
.addToUi();
}
if(doc != null && doc != undefined) {
var docsUI = DocumentApp.getUi();
docsUI.createAddonMenu()
.addItem('Name', 'function')
.addToUi();
}
}
Если я удаляю условный материал и включаю только меню редактора c (документы для документов, листы для листов), меню отображаются правильно.