Ações de tratamento – JavaScript

O SDK do JavaScript apresenta uma base Action e um conjunto de classes de ação dedicadas (que todas se estendem de Action) que mapeiam para os vários tipos de ação definidos no esquema de Cartão Adaptável: | Nome do tipo de esquema | Classe JavaScript | | --- | --- | | Action.OpenUrl | OpenUrlAction | | Action.ShowCard | ShowCardAction | | Action.ToggleVisibility | ToggleVisibilityAction | | Action.Submit | SubmitAction |

Manipulação de ações quando os usuários clicam em botões de ação

Para lidar com a execução de ação com o SDK do JavaScript, um aplicativo deve fornecer um manipulador para o evento global AdaptiveCard.onExecuteAction ou para o evento por cartão adaptiveCardInstance.onExecuteAction . O manipulador de eventos será invocado independentemente do tipo de ação que está sendo executada e é responsabilidade do aplicativo testar qual tipo de ação está sendo executada e executar o código apropriado. Normalmente, os aplicativos só precisarão lidar SubmitActionexplicitamente, pois outros tipos de ação são tratados automaticamente pelo SDK.

Exemplo

// 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());

Executando ações no código

O SDK do JavaScript permite executar ações no código, se necessário, por meio do Action.execute() método.

Exemplo

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();
    }
}