Behandeln von Aktionen – JavaScript

Das JavaScript SDK führt eine Basis Action und eine Reihe dedizierter Aktionsklassen (die alle erweitern Action) ein, die den verschiedenen Aktionstypen zugeordnet sind, die im Schema für adaptive Karten definiert sind: | Schematypname | JavaScript-Klasse | | --- | --- | | Action.OpenUrl | OpenUrlAction | | Action.ShowCard | ShowCardAction | | Action.ToggleVisibility | ToggleVisibilityAction | | Action.Submit | SubmitAction |

Behandlung von Aktionen, wenn Benutzer auf Aktionsschaltflächen klicken

Um die Ausführung von Aktionen mit dem JavaScript-SDK zu behandeln, sollte eine Anwendung einen Handler für das globale AdaptiveCard.onExecuteAction Ereignis oder für das Ereignis pro Karte adaptiveCardInstance.onExecuteAction bereitstellen. Der Ereignishandler wird unabhängig vom Typ der ausgeführten Aktion aufgerufen, und es liegt in der Verantwortung der Anwendung, zu testen, welche Art von Aktion ausgeführt und der entsprechende Code ausgeführt wird. In der Regel müssen Anwendungen nur SubmitAction explizit behandeln, da andere Aktionstypen automatisch vom SDK behandelt werden.

Beispiel

// Create an AdaptiveCard instance
let adaptiveCard = new AdaptiveCard();

// Parse a card payload - this is just a very simple example
adaptiveCard.parse(
    {
        "type": "AdaptiveCard",
        "version": "1.0",
        "actions": [
            {
                "type": "Action.Submit",
                "id": "clickMe",
                "title": "Click me!"
            }
        ]
    }
)

// Provide an onExecuteAction handler to handle the Action.Submit
adaptiveCard.onExecuteAction = (action: Action) => {
    if (action instanceof SubmitAction) {
        // If you copy this code sample, remove the alert statement
        // and provide your own custom handling code
        alert("You clicked " + action.title);
    }
}

document.body.appendChild(adaptiveCard.render());

Ausführen von Aktionen im Code

Mit dem JavaScript SDK können Sie Aktionen im Code ausführen, wenn dies über die Action.execute() Methode erforderlich ist.

Beispiel

function triggerAction(card: AdaptiveCard, actionId: string) {
    let action = card.getActionById(actionId);

    if (action !== undefined) {
        // Executing an action in code will trigger the
        // onExecuteAction event
        action.execute();
    }
}