대부분의 부가기능은 데이터를 표시하는 것 외에도 확인할 수 있습니다 카드 기반 부가기능을 만들 때 다음을 사용할 수 있습니다. 대화형 위젯(예: 버튼, 툴바 메뉴 항목 또는 부가기능에 표시되는 데이터를 사용자에게 묻는 체크박스 기타 상호작용 제어 기능을 제공할 수 있습니다
위젯에 작업 추가
대부분의 경우 위젯을 특정 작업 및 콜백에서 필요한 동작 구현 함수를 사용하세요. 자세한 내용은 부가기능 작업을 참고하세요.
대부분의 경우 다음과 같은 일반적인 절차에 따라 선택하거나 업데이트했을 때 특정 작업을 실행합니다.
예
다음 예는 사용자 알림을 표시하는 버튼을 설정합니다.
표시됩니다. 클릭하면 notifyUser()
콜백 함수가 트리거됩니다.
알림 텍스트를 지정하는 인수로 대체합니다. 빌드한 작업 반환
ActionResponse
드림
알림이 표시됩니다.
/**
* Build a simple card with a button that sends a notification.
* @return {Card}
*/
function buildSimpleCard() {
var buttonAction = CardService.newAction()
.setFunctionName('notifyUser')
.setParameters({'notifyText': 'Button clicked!'});
var button = CardService.newTextButton()
.setText('Notify')
.setOnClickAction(buttonAction);
// ...continue creating widgets, then create a Card object
// to add them to. Return the built Card object.
}
/**
* Callback function for a button action. Constructs a
* notification action response and returns it.
* @param {Object} e the action event object
* @return {ActionResponse}
*/
function notifyUser(e) {
var parameters = e.parameters;
var notificationText = parameters['notifyText'];
return CardService.newActionResponseBuilder()
.setNotification(CardService.newNotification()
.setText(notificationText))
.build(); // Don't forget to build the response!
}
효과적인 상호작용 설계
양방향 카드를 디자인할 때는 다음 사항에 유의하세요.
대화형 위젯은 일반적으로 있습니다.
setOpenLink()
위젯 사용 핸들러 함수를 사용합니다. 이렇게 하면Action
객체 및 콜백 함수를 사용하세요. 먼저 URL을 만들거나 다른 추가 URL이 필요한 경우 하려면 URL을 열기 전에Action
을 사용하고 다음을 사용합니다.setOnClickOpenLinkAction()
하세요.setOpenLink()
를 사용하는 경우 또는setOnClickOpenLinkAction()
핸들러 함수를 사용하기 위해서는OpenLink
객체를 사용하여 열 URL을 정의합니다. 이 객체를 사용하여 를 사용하여 열기 및 닫기 동작을 지정할 수 있습니다.OpenAs
및OnClose
enum둘 이상의 위젯에서 같은
Action
객체 하지만 각 포드에 대해 서로 다른 필요한 경우Action
객체 콜백 함수에 다양한 매개변수를 제공합니다.콜백 함수는 단순하게 유지합니다. 애드온의 응답성을 유지하려면 카드 서비스는 콜백 함수를 실행할 수 있습니다 이보다 오래 걸리는 경우 부가기능 UI가 응답에서 카드 디스플레이를 제대로 업데이트하지 않으면
Action
사용자 행위로 인해 서드 파티 백엔드의 데이터 상태가 변경되는 경우 상호작용을 원하지 않는 경우 부가기능 세트가 '상태 변경됨' 비트를
true
로 설정하여 기존 클라이언트 측 캐시가 삭제되었습니다. 자세한 내용은ActionResponseBuilder.setStateChanged()
드림 메서드 설명을 참조하세요.