通过插件更改标签时更新GMail消息UI

时间:2019-07-09 19:44:19

标签: gsuite gmail-addons

我正在创建一个消息标签附加组件来管理票证。我使用Apps脚本本身和G Suite开发人员的快速入门示例。

我希望选择标签时,它会在打开的消息中显示,或者至少在返回收件箱时会更新。

仅当我刷新浏览器(F5)或按收件箱中的“刷新”按钮时,标签才会更新。

在执行“ toggleLabel”时,我尝试使用线程的Refresh方法。

还有GmailApp.refreshThread(thread)GmailApp.refreshMessage(message)的选择。

我尝试过的另一种选择是使用一个按钮,该按钮的属性setStateChanged被激活。

它们都不起作用。我总是必须手动刷新。这是简化的代码。

选择标签后执行此功能。

function toggleLabel(e){
  var selected;

  if (selected != null){
     for each (var label in GmailApp.getUserLabels()) {       
       if(selected.indexOf(label.getName()) != -1){         
          thread.addLabel(label);
       }
       else {
         thread.removeLabel(label);
       }       
     }
  }
  else {
    for each (var label in GmailApp.getUserLabels()) {
      thread.removeLabel(label);
    }
  }

  thread.refresh();
}

这是按下按钮时执行的功能。

function notifyUser(e) {
    var parameters = e.parameters;
    var notificationText = parameters['notifyText'];
    return CardService.newActionResponseBuilder()
        .setNotification(CardService.newNotification()
            .setText(notificationText)
            .setType(CardService.NotificationType.INFO))
        .setStateChanged(true)
        .build();      // Don't forget to build the response!

  GmailApp.refreshThread(thread);
  GmailApp.refreshMessage(message);
 }

是否可以通过插件以编程方式更新用户界面中的消息标签列表?

0 个答案:

没有答案