如何通过回调更改 Gmail 插件的 UI?
How do I alter the UI of a Gmail Add On from a callback?
gmail 附加组件的新手,有一个我确信很基本的问题:如何通过回调函数更改我的附加组件的 UI?
更具体地说,我有一个按钮呈现在我的卡片的一个部分中:
section.addWidget(
CardService.newTextButton()
.setText('UNSUBSCRIBE')
.setOnClickAction(
CardService.newAction()
.setFunctionName('unsubscribe')
.setParameters({email: sender.email})));
如您所见,我在单击该函数时调用了一个名为 "unsubscribe" 的函数,该函数又调用了第 3 方 API 端点。从该端点收到 200 响应后,我想隐藏 "unsubscribe" 按钮并向用户显示一条消息,说明取消订阅请求已成功通过。目前,我不知道如何访问卡片部分,所以我改为显示通知:
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();
}
最好在成功时隐藏取消订阅按钮并在线显示成功消息。我该怎么做?
提前致谢。
截至目前,我们无法动态更新卡片的部分。因此,您不能直接隐藏按钮并显示一些消息。但作为一种解决方法,您可以使用 Navigation class 和 updateCard 方法重绘整个卡片(不包括按钮但包括消息)。
如果您还没有使用过导航 class,this link 可能会有用。
gmail 附加组件的新手,有一个我确信很基本的问题:如何通过回调函数更改我的附加组件的 UI?
更具体地说,我有一个按钮呈现在我的卡片的一个部分中:
section.addWidget(
CardService.newTextButton()
.setText('UNSUBSCRIBE')
.setOnClickAction(
CardService.newAction()
.setFunctionName('unsubscribe')
.setParameters({email: sender.email})));
如您所见,我在单击该函数时调用了一个名为 "unsubscribe" 的函数,该函数又调用了第 3 方 API 端点。从该端点收到 200 响应后,我想隐藏 "unsubscribe" 按钮并向用户显示一条消息,说明取消订阅请求已成功通过。目前,我不知道如何访问卡片部分,所以我改为显示通知:
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();
}
最好在成功时隐藏取消订阅按钮并在线显示成功消息。我该怎么做?
提前致谢。
截至目前,我们无法动态更新卡片的部分。因此,您不能直接隐藏按钮并显示一些消息。但作为一种解决方法,您可以使用 Navigation class 和 updateCard 方法重绘整个卡片(不包括按钮但包括消息)。
如果您还没有使用过导航 class,this link 可能会有用。