Class Action

Aktion

Eine Aktion, die Interaktivität innerhalb von UI-Elementen ermöglicht. Die Aktion wird nicht direkt auf dem Client ausgeführt, sondern es wird eine Apps Script-Callback-Funktion mit optionalen Parametern aufgerufen.

Verfügbar für Google Workspace-Add-ons und Google Chat-Apps.

const image = CardService.newImage().setOnClickAction(
    CardService.newAction().setFunctionName('handleImageClick').setParameters({
      imageSrc: 'carImage'
    }),
);

Methoden

MethodeRückgabetypKurzbeschreibung
addRequiredWidget(requiredWidget)ActionFügen Sie die Namen der Widgets hinzu, die für diese Aktion für eine gültige Einreichung erforderlich sind.
setAllWidgetsAreRequired(allWidgetsAreRequired)ActionGibt an, ob für diese Aktion Eingaben von allen Widgets erforderlich sind.
setFunctionName(functionName)ActionLegt den Namen der aufzurufenden Callback-Funktion fest.
setInteraction(interaction)ActionHiermit wird die Interaktion mit einem Nutzer festgelegt. Dies ist nur erforderlich, wenn ein Dialogfeld geöffnet wird.
setLoadIndicator(loadIndicator)ActionLegt die Ladeanzeige fest, die während der Ausführung der Aktion angezeigt wird.
setParameters(parameters)ActionErmöglicht das Übergeben benutzerdefinierter Parameter an die Callback-Funktion.
setPersistValues(persistValues)ActionGibt an, ob Formularwerte anhand der Werte des Clients oder des Servers bestimmt werden, nachdem die Card des Formulars in einer Aktionsantwort aktualisiert wurde.

Detaillierte Dokumentation

addRequiredWidget(requiredWidget)

Fügen Sie die Namen der Widgets hinzu, die für diese Aktion für eine gültige Einreichung erforderlich sind. Wenn die Widgets in dieser Liste keinen Wert haben, wenn diese Aktion aufgerufen wird, wird die Formulareinreichung abgebrochen.

Nur für Google Chat-Apps verfügbar. Nicht verfügbar für Google Workspace-Add-ons.

const textInput = CardService.newTextInput()
                      .setFieldName('text_input_1')
                      .setTitle('Text input title');

// Creates a footer button that requires an input from the above TextInput
// Widget.
const action = CardService.newAction()
                   .setFunctionName('notificationCallback')
                   .addRequiredWidget('text_input_1');
const fixedFooter = CardService.newFixedFooter().setPrimaryButton(
    CardService.newTextButton().setText('help').setOnClickAction(action),
);

Parameter

NameTypBeschreibung
requiredWidgetStringDer Name des Widgets, das für diese Aktion erforderlich ist.

Rückflug

Action – dieses Objekt, zur Verkettung


setAllWidgetsAreRequired(allWidgetsAreRequired)

Gibt an, ob für diese Aktion Eingaben von allen Widgets erforderlich sind.

Nur für Google Chat-Apps verfügbar. Nicht verfügbar für Google Workspace-Add-ons.

// Creates a button with an action that requires inputs from all widgets.
const button = CardService.newTextButton()
                   .setText('Create notification')
                   .setOnClickAction(
                       CardService.newAction().setAllWidgetsAreRequired(true));

Parameter

NameTypBeschreibung
allWidgetsAreRequiredBooleanGibt an, ob für die Aktion Eingaben von allen Widgets erforderlich sind. Die Standardeinstellung ist false.

Rückflug

Action – dieses Objekt, zur Verkettung


setFunctionName(functionName)

Legt den Namen der aufzurufenden Callback-Funktion fest. Erforderlich.

Parameter

NameTypBeschreibung
functionNameStringDer Name der Funktion. Sie können Funktionen aus den enthaltenen Bibliotheken verwenden, z. B. Library.libFunction1.

Rückflug

Action – dieses Objekt, zur Verkettung


setInteraction(interaction)

Hiermit wird die Interaktion mit einem Nutzer festgelegt. Dies ist nur erforderlich, wenn ein Dialogfeld geöffnet wird. Andernfalls reagiert die App, indem sie wie gewohnt eine Action ausführt, z. B. einen Link öffnet oder eine Funktion ausführt.

Nur für Google Chat-Apps verfügbar. Nicht verfügbar für Google Workspace-Add-ons.

const action = CardService.newAction()
                   .setFunctionName('handleDialog')
                   .setInteraction(CardService.Interaction.OPEN_DIALOG);

Parameter

NameTypBeschreibung
interactionInteractionDie Interaktion, die angegeben werden soll.

Rückflug

Action – dieses Objekt, zur Verkettung


setLoadIndicator(loadIndicator)

Legt die Ladeanzeige fest, die während der Ausführung der Aktion angezeigt wird.

Parameter

NameTypBeschreibung
loadIndicatorLoadIndicatorDie anzuzeigende Anzeige.

Rückflug

Action – dieses Objekt, zur Verkettung


setParameters(parameters)

Ermöglicht das Übergeben benutzerdefinierter Parameter an die Callback-Funktion. Optional.

Parameter

NameTypBeschreibung
parametersObjectSowohl Schlüssel als auch Werte müssen Strings sein.

Rückflug

Action – dieses Objekt, zur Verkettung


setPersistValues(persistValues)

Gibt an, ob Formularwerte anhand der Werte des Clients oder des Servers bestimmt werden, nachdem die Card des Formulars in einer Aktionsantwort aktualisiert wurde. Wenn dieser Wert auf true festgelegt ist, bleiben die Werte des Clients nach der Serverantwort erhalten. Wenn dieser Wert auf false gesetzt ist, werden die Formularwerte von den Serverwerten überschrieben. Die Standardeinstellung ist false.

Wenn Sie die Clientwerte beibehalten, können Sie Situationen vermeiden, in denen sich ein Formular unerwartet ändert, nachdem ein Nutzer eine Änderung vorgenommen hat. Das ist beispielsweise der Fall, wenn ein Nutzer nach dem Senden eines Formulars, aber noch bevor der Server antwortet, eine Änderung an einer TextInput vornimmt. Wenn die Werte gespeichert werden, bleiben die vom Nutzer vorgenommenen Änderungen erhalten, nachdem die Card in der Serverantwort aktualisiert wurde. Andernfalls wird der Formularwert auf den Wert zurückgesetzt, den der Nutzer ursprünglich im Formular eingereicht hat.

Wenn Sie Clientwerte beibehalten, kann das dazu führen, dass Ihr Script keine Formularfelder löschen oder Formularwerte überschreiben kann. Aktivieren Sie die Persistenz daher nicht für diese Art von Funktionen. Ohne Persistenz wird empfohlen, LoadIndicator.SPINNER für Ereignisse zu verwenden, da dadurch die Benutzeroberfläche gesperrt und Nutzeränderungen verhindert werden, bevor der Server antwortet. Alternativ können Sie LoadIndicator.NONE verwenden und dafür sorgen, dass jedes Element im Formular eine onChange-Aktion hat.

// Creates a button with an action that persists the client's values as the
// on-click action.
const button =
    CardService.newTextButton()
        .setText('Create notification')
        .setOnClickAction(
            CardService.newAction().setPersistValues(true).setFunctionName(
                'functionName'),
        );

Parameter

NameTypBeschreibung
persistValuesBooleanGibt an, ob Werte gespeichert werden sollen. Die Standardeinstellung ist false.

Rückflug

Action – dieses Objekt, zur Verkettung

Eingestellte Methoden