#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/"
}
]
}