Кнопка отмены на адаптивных картах Microsoft для команд - PullRequest
1 голос
/ 03 февраля 2020

Я использую MS адаптивные карты для команд, использующих nodejs. Я вижу действия имеют кнопку типа Action.Submit для передачи данных формы. Тем не менее, я хочу понять, как обрабатывать отмену.

Можно ли просто закрыть форму, нажав кнопку отмены, или я должен позволить ей вести себя как кнопка сохранения и ничего не возвращать со стороны сервера при отмене кнопка нажата.

моя карта как ниже

{
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "TextBlock",
            "size": "Medium",
            "weight": "Bolder",
            "text": "{title}"
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "items": [
                        {
                            "type": "Image",
                            "style": "Person",
                            "url": "{creator.profileImage}",
                            "size": "Small"
                        }
                    ],
                    "width": "auto"
                },
                {
                    "type": "Column",
                    "items": [
                        {
                            "type": "TextBlock",
                            "weight": "Bolder",
                            "text": "{creator.name}",
                            "wrap": true
                        },
                        {
                            "type": "TextBlock",
                            "spacing": "None",
                            "text": "Created {{DATE({createdUtc},SHORT)}}",
                            "isSubtle": true,
                            "wrap": true
                        }
                    ],
                    "width": "stretch"
                }
            ]
        }
    ],
    "actions": [
        {
            "type": "Action.ShowCard",
            "title": "Set due date",
            "card": {
                "type": "AdaptiveCard",
                "body": [

                    {
                        "type": "Input.Text",
                        "id": "comment",
                        "placeholder": "Add a comment",
                        "isMultiline": true
                    }
                ],
                "actions": [
                    {
                        "type": "Action.Submit",
                        "title": "OK"
                    },
                     {
                        "type": "Action.Submit",
                        "title": "Cancel"
                    }
                ],
                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
            }
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0"
}

Ответы [ 3 ]

2 голосов
/ 03 февраля 2020

Точно определенного способа обработки функциональности Cancel не существует.

Вы должны дополнительно управлять этим кодом, Да, вы правы, как Save Action Вы также должны установить функциональность для Cancel

Например, когда я сделал пользователь выбирает sorry, not now (Думайте как Cancel) Я принял этот ответ и под Switch-Case ответом, как требуется.

//Check Each User Input
 switch (checkUserInput.ToLower())
                        {
       case "sorry, not now":
                                await turnContext.SendActivityAsync(MessageFactory.Text("Okay, Can I help with anything else?"), cancellationToken);
                                //Send Another Yes/No Card
                                var yesNoFlow = _customFlowRepository.YesNoFlow();
                                await turnContext.SendActivityAsync(yesNoFlow).ConfigureAwait(false);
                                break;
      default: //When nothing found in user intent
                                await turnContext.SendActivityAsync(MessageFactory.Text("What are you looking for?"), cancellationToken);
                                break;

                        }

Вы могли бы взглянуть на скриншот ниже:

enter image description here

Надеюсь, это поможет вам разобраться в вашей проблеме. Дайте мне знать, если у вас есть еще вопросы.

1 голос
/ 03 февраля 2020

Нет ничего, кроме кнопки отмены в адаптивных картах. Если вы хотите закрыть карту / больше не показывать карту, вы можете попробовать обновить эту карту другой новой картой, которую вы хотели бы показать.

1 голос
/ 03 февраля 2020

Нет способа «отменить» карту как таковую, чтобы ее убрать go - если пользователь не хочет продолжать, он может просто прекратить взаимодействие с картой. Тем не менее, вот несколько возможных альтернатив:

  1. Вы можете внедрить кнопку "отмена" как действие отправки, которое вы можете обнаружить в боте, и ответить соответствующим сообщением
  2. Вы могли бы взглянуть на действие "ShowCard"? Это в основном позволяет вам свернуть часть вашей карты и открывать ее только тогда, когда пользователь нажимает на кнопку. Таким образом, вы могли бы сгруппировать свою карточку по разделам и показывать каждую по очереди. См. здесь для получения дополнительной информации.

Еще одна опция в будущем - это новое действие ToggleVisibility в AdaptiveCards 1.2, но только если ваш клиент поддерживает 1.2. (например, он доступен только в Developer Preview для команд прямо сейчас (так что очень вероятно /, надеюсь, появится в будущем, но пока недоступен))

...