Надстройки Gmail (если речь идет о надстройке Gmail) используют Карточный интерфейс и не могут быть созданы с помощью пользовательских html
и 'css'. После создания такого интерфейса создайте функцию, которая выполняет функцию вашей библиотеки:
/**
* Triggers library function;
* @param {Object} e event object;
*/
function myTrigger(e) {
//access event object's params;
var parameters = e.parameters;
var id = parameters.id;
var url = parameters.url;
//you can reference lib functions by prepending its name;
myLibrary.myFunc();
}
Импортируйте свою библиотеку, нажав на кнопку командной строки проекта Ресурсы , затем выберите Библиотеки и импортируйте свой проект (если ваша библиотека может быть преобразована в проект сценария приложений, если нет). Мало что можно сделать). Кроме того, Google не рекомендует использовать библиотеки в дополнениях.
Конечно, вы можете загрузить внешнюю не-GAS библиотеку через UrlFetchApp.fetch()
, используя eval()
(у ctrq есть отличный учебник о том, как это сделать), но вы, вероятно, знаете, что eval()
приносит угроз безопасности для вашего приложения.
Затем настройте Action
на целевом элементе пользовательского интерфейса (скорее всего, TextButton
):
//...created a TextButton and wrote it into a var tb;
//create parameters object (aquire id and url however you want)
var parameters = {
id : '',
url : ''
};
//reference Enum loadIndicator (only NONE or SPINNER currently);
var loadIndicator = CardService.LoadIndicator.SPINNER;
//create Action to set;
var action = CardService.newAction();
action.setFunctionName('myTrigger'); //reference trigger function;
action.setLoadIndicator(loadIndicator); //set a load indicator, if not invoked equals NONE;
action.setParameters(parameters) //every key in this object are strings!;
//set Action to TextButton;
tb.setOnClickAction(action);