Bei den meisten Add-ons muss der Nutzer nicht nur Daten präsentieren, Informationen. Wenn du ein kartenbasiertes Add-on erstellst, kannst du interaktive Widgets wie Schaltflächen, oder Kontrollkästchen, um den Nutzer nach Daten zu fragen, oder bieten andere Interaktionskontrollen.
Aktionen zu Widgets hinzufügen
Widgets werden größtenteils interaktiv, indem Sie Bestimmte Aktionen und die Implementierung des erforderlichen Verhaltens in einem Callback . Weitere Informationen finden Sie unter Add-on-Aktionen.
In den meisten Fällen können Sie mit diesem allgemeinen Verfahren Bestimmte Aktion bei Auswahl oder Aktualisierung ausführen:
- Erstellen Sie ein
Action
-Objekt. Angeben der Callback-Funktion, die ausgeführt werden soll, zusammen mit erforderlichen Parameter. - Verknüpfen Sie das Widget mit
Action
, indem Sie das entsprechende Widget-Handler-Funktion. - Callback-Funktion implementieren um das erforderliche Verhalten umzusetzen.
Beispiel
Im folgenden Beispiel wird eine Schaltfläche zum Anzeigen einer Nutzerbenachrichtigung festgelegt.
nachdem darauf geklickt wurde. Der Klick löst die Callback-Funktion notifyUser()
aus
durch ein Argument, das den Benachrichtigungstext angibt. Build zurückgeben
ActionResponse
führt zu einer angezeigten Benachrichtigung.
/**
* 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!
}
Effektive Interaktionen entwerfen
Beachten Sie beim Entwerfen interaktiver Karten Folgendes:
Interaktive Widgets benötigen normalerweise mindestens eine Handler-Methode zur Definition ihrer verhalten.
setOpenLink()
-Widget verwenden -Handler verwendet, wenn Sie eine URL haben und diese nur in einem Tab öffnen möchten. Dadurch entfällt die Notwendigkeit,Action
-Objekt und Callback . Wenn Sie die URL zuerst erstellen müssen oder andere zusätzliche bevor Sie die URL öffnen, definieren SieAction
und verwenden SiesetOnClickOpenLinkAction()
.Bei Verwendung des
setOpenLink()
odersetOnClickOpenLinkAction()
-Widget-Handler-Funktionen verwenden, müssen Sie eineOpenLink
-Objekt, um zu definieren, welche URL geöffnet werden soll. Sie können dieses Objekt auch um das Öffnungs- und Schließverhalten festzulegen,OpenAs
undOnClose
-Enums.Es ist möglich, dass mehrere Widgets dasselbe
Action
-Objekt. Sie müssen jedoch unterschiedlicheAction
-Objekte, wenn Sie möchten um der Callback-Funktion verschiedene Parameter zur Verfügung zu stellen.Halten Sie Ihre Callback-Funktionen einfach. Damit die Add-ons reaktionsfähig bleiben, muss der Beim Kartendienst sind Callback-Funktionen auf maximal 30 Sekunden begrenzt. Ausführungszeit. Wenn die Ausführung länger dauert, kann es passieren, dass die Add-on-UI die Kartenanzeige aufgrund des Fehlers
Action
Wenn sich der Datenstatus im Back-End eines Drittanbieters als Ergebnis eines Nutzers ändert, mit Ihrer Add-on-Benutzeroberfläche interagieren, wird empfohlen, ein „Bundesstaat geändert“ Bit auf
true
, sodass jeder vorhandene clientseitige Cache gelöscht. Weitere Informationen finden Sie in derActionResponseBuilder.setStateChanged()
.