Interaktive Karten erstellen

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:

  1. Erstellen Sie ein Action-Objekt. Angeben der Callback-Funktion, die ausgeführt werden soll, zusammen mit erforderlichen Parameter.
  2. Verknüpfen Sie das Widget mit Action, indem Sie das entsprechende Widget-Handler-Funktion.
  3. 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 Sie Action und verwenden Sie setOnClickOpenLinkAction() .

  • Bei Verwendung des setOpenLink() oder setOnClickOpenLinkAction() -Widget-Handler-Funktionen verwenden, müssen Sie eine OpenLink -Objekt, um zu definieren, welche URL geöffnet werden soll. Sie können dieses Objekt auch um das Öffnungs- und Schließverhalten festzulegen, OpenAs und OnClose-Enums.

  • Es ist möglich, dass mehrere Widgets dasselbe Action-Objekt. Sie müssen jedoch unterschiedliche Action-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 der ActionResponseBuilder.setStateChanged() .