gmail添加了新功能并且有一个我确定非常基本的问题:如何从回调函数更改我的添加的UI?
更具体地说,我有一个按钮,可以在我卡片的某个部分呈现:
section.addWidget(
CardService.newTextButton()
.setText('UNSUBSCRIBE')
.setOnClickAction(
CardService.newAction()
.setFunctionName('unsubscribe')
.setParameters({email: sender.email})));
正如你所看到的,我称之为"取消订阅"单击它时,它又调用第三方API端点。根据该端点的200响应,我想隐藏"取消订阅"按钮并向用户显示一条消息,指出取消订阅请求已成功完成。目前,我不知道如何访问卡片部分,所以我正在显示通知:
function unsubscribe(e){
var parameters = e.parameters;
var email = parameters['email'];
var data = {
"code":"XXXX",
"email": email
};
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(data)
};
var response = UrlFetchApp.fetch('https://someurl.com', options);
if(response.getResponseCode() == 200){
return CardService.newActionResponseBuilder()
.setNotification(CardService.newNotification().setType(CardService.NotificationType.INFO)
.setText(email + " has been unsubscribed from future notices."))
.build();
}
return CardService.newActionResponseBuilder()
.setNotification(CardService.newNotification()
.setType(CardService.NotificationType.WARNING)
.setText("Something went wrong"))
.build();
}
将成功隐藏UNSUBSCRIBE按钮并在线显示成功消息会好得多。我该怎么做?
提前致谢。
答案 0 :(得分:2)
截至目前,我们无法动态更新卡片的各个部分。因此,您无法直接隐藏按钮并显示一些消息。但作为一种解决方法,您可以使用Navigation类和updateCard方法重绘整张卡(不包括按钮并将包含消息)。
如果您尚未使用导航课程,this链接可能会有用。