JavaScript SDK 引進了一個基底 Action 類別和一組專用動作類別,所有這些類別都繼承自 Action,並對應至自適應卡片架構中定義的各種動作類型: | Schema 類型名稱 | JavaScript 類別 | | --- | --- | | Action.OpenUrl | OpenUrlAction | | Action.ShowCard | ShowCardAction | | Action.ToggleVisibility | ToggleVisibilityAction | | Action.Submit | SubmitAction |
當使用者按下動作按鈕時處理動作
若要使用 JavaScript SDK 處理動作執行,應用程式應該為全域 AdaptiveCard.onExecuteAction 事件或個別卡片 adaptiveCardInstance.onExecuteAction 事件提供處理程式。 不論要執行的動作類型為何,都會叫用事件處理程式,而且應用程式必須負責測試要執行的動作類型,並執行適當的程序代碼。 一般而言,應用程式只需要明確處理 SubmitAction,因為 SDK 會自動處理其他動作類型。
範例
// 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());
在程式代碼中執行動作
JavaScript SDK 可讓您視需要透過 Action.execute() 方法在程式碼中執行動作。
範例
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();
}
}