如何将上下文菜单项添加到Gmail加载项的省略号菜单中?

时间:2020-10-27 06:05:01

标签: google-apps-script gmail

我正在使用Google Apps脚本构建Gmail插件。

如何根据上下文更改通用菜单项,如下面的Evernote附加示例所示?据我所知,这些菜单项是在清单中设置的,我找不到改变它们的方法。

evernote add-on screenshot

1 个答案:

答案 0 :(得分:2)

您需要的称为CardAction。它们本身不是菜单项,而是有效地起作用,与清单中定义的universal actions一起形成省略号菜单。

请注意(请参阅official guide),CardActionActions不同,因为前者未向Card UI添加任何内容,将操作置于省略号菜单下:< / p>

注意:请勿将Action对象与CardAction对象混淆。 CardAction对象是卡片标题菜单项,而Action对象定义对用户与UI交互的响应。

当前,CardActions可以启动几种操作类型:

  1. 启动授权流程(setAuthorizationAction
  2. 创建消息草稿(setComposeAction
  3. 点击(setOnClickAction)执行功能
  4. 打开指定的链接(setOnClickOpenLinkAction),有选择地产生副作用
  5. 使用全屏或弹出对话框(setOpenLink)打开链接

您可以为Card创建一个菜单构建器实用程序,其外观类似于以下内容(示例在TypeScript中):

declare interface ActionOptions {
  text: string;
  action: GoogleAppsScript.Card_Service.Action;
}

const buildMenu = (
  builder: GoogleAppsScript.Card_Service.CardBuilder,
  items: ActionOptions[] = []
) => {
  items.forEach(({ text, action }) => {
    const ca = CardService.newCardAction();
    ca.setText(text);
    
    //assign a specific action type, i.e.:
    //ca.setOnClickAction(action);

    builder.addCardAction(ca);
  });

  //if used as pass-through, return the builder
  return builder.build();
};