Адаптивное изображение карты, частично отображаемое в MS Teams

#microsoft-teams #adaptive-cards

#microsoft-teams #адаптивные карты

Вопрос:

Я создаю динамические изображения и включаю их как часть адаптивной карты, изображения относительно небольшие, всего 60 КБ, когда я отвечаю изображением в первый раз, оно частично отображается, пока я не прокручиваю вверх или не покидаю разговор. Я предполагаю, что запускает собственное обновление, как только изображение кэшируетсязагружено правильно, проблема появляется только при первом рендеринге

 {
    "type": "AdaptiveCard",
    "version": "1.2",
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "body": [
        {
            "type": "TextBlock",
            "text": "Any text",
            "wrap": true
        },
        {
            "type": "Image",
            "url": "https://806168b00b02.ngrok.io/myimage"
        }
    ]
}
 

введите описание изображения здесь

Есть ли обходной путь, позволяющий полностью отобразить изображение в первый раз?

Комментарии:

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

2. Этот туннель был доступен на момент вопроса, вы можете использовать любое общедоступное изображение, это не имеет никакого значения

3. Извините за поздний ответ в этой теме, я только что попробовал использовать это изображение, в первый раз карта сворачивается на секунду, а затем появляется изображение, но в следующий раз оно кэшируется и отображается нормально. Это проблема, о которой вы упоминаете?

4. @Manish-MSFT для меня оно никогда не появляется в первый раз, возможно, мое изображение больше, в целом вы правы, что когда изображение кэшируется, оно отображается нормально, НО для меня это не вариант, поскольку мой бот создает новое изображение каждый раз, когда пользователь взаимодействует с ним

5. Я обнаружил ошибку для этого в adaptive card team.

Ответ №1:

Я тоже испытываю это, и это немного больно, поэтому мне любопытно, есть ли еще один интересный возможный ответ. В то же время, вместо использования URL-адреса, вы можете встроить само изображение в сообщение, закодировав его в base64. Итак, вместо:

«url»: «https://806168b00b02.ngrok.io/myimage »

попробуйте (это всего лишь пример изображения)

«url»: «данные: изображение / png;base64,iVBORw0KGgoAAA ansuheugaaaauaaafcayaaacnbyblaaaaheleqvqi12p4 //8/w38GIAXDIBKE0DHxgljNBAO9tXL0y4oHWaAAAABJRU 5ErkJggg==»,

кодировка base64, если вы не делали этого раньше, довольно тривиальна на большинстве платформ, просто Погуглите.

Комментарии:

1. позвольте мне попробовать и отправить вам ответ, спасибо за ответ, кстати

2. ну, на самом деле это ничего не меняет, изображение по-прежнему отображается частично, если я явно не установил «высоту», но это очень зависит от разрешения экрана и не может быть надежным

Ответ №2:

Это определенно ошибка в MS Teams, между тем, что помогает, так это сделать еще один ответ сразу после адаптивной карты с изображением, этот ответ запускает принудительное обновление, и изображение полностью загружается, это немного неуклюже, но это работает

Попробуйте сначала опубликовать изображение

 {
    "type": "AdaptiveCard",
    "version": "1.2",
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "body": [
        {
            "type": "Image",
            "url": "https://806168b00b02.ngrok.io/myimage"
        }
    ]
}
 

и сразу после публикации чего-либо еще в моем случае список действий

 {
    "type": "AdaptiveCard",
    "version": "1.2",
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "Open Me",
            "url": "https://www.google.com/"
        }
    ]
}