Подсказка для длинных текстов в картах героев

Я использую веб-чат Bot Framework (на основе React). Я использую «Действия с картами» (карты героев), чтобы предложить список похожих вопросов. Иногда текст в Карте Героя может быть слишком длинным. В этом случае текст усекается и заменяется тремя точками. Возможно ли иметь всплывающую подсказку для Карт Героев?

Подсказка для длинных текстов в картах героев

Я просмотрел варианты HeroCard в коде, но не нашел ничего подходящего.

Подсказка для длинных текстов в картах героев

Я поднял это на Github: https://github.com/microsoft/BotFramework-WebChat/issues/2032

Любая помощь с этим, пожалуйста?

Надеюсь, у тебя получилось. Если вы считаете, что моего ответа было достаточно, пожалуйста, «примите» его, чтобы я мог удалить этот тикет из моего трекера поддержки. Если нет, дайте мне знать, как еще я могу помочь!

tdurnford 31.05.2019 19:29
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
712
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Веб-чат использует пакет Адаптивные карты NPM для отображения карточек, и, к сожалению, Adaptive Cards не поддерживает добавление описаний всплывающих подсказок к элементам в карточке. Однако на GitHub открыто несколько вопросы, касающихся добавления функций всплывающих подсказок, поэтому мы надеемся, что эта функция скоро будет доступна в веб-чате.

Несмотря на то, что Adaptive Cards не поддерживает добавление всплывающих подсказок, вы можете создать настраиваемое промежуточное ПО для вложений для веб-чата и реализовать собственный модуль визуализации карт героев. Фрагмент кода ниже показывает базовый рендеринг карты героя без каких-либо стилей.

<script type = "text/babel">

  const HeroCardAttachment = ({ buttons, images, title, store }) =>
    <div className='ac-container'>
      <div className='ac-container'>
        { images.map(({ url }, index) => 
          <window.React.Fragment key = { index }>
            <div>
              <img src= { url } />
            </div>
            <div style = {{height: '8px'}}/>
          </window.React.Fragment>
        )}
        <div>{ title }</div>
      </div>
      <div />
      <div >
        { buttons.map(({ title, type, value }, index) => (
          <window.React.Fragment key = { index }>
            <button 
              aria-label = { title }
              type='button' 
              title = { title }
              onClick = { () => {
                switch (type) {
                  case 'openUrl':
                    window.open(value)
                    break;
                  case 'postBack':
                    store.dispatch({
                      type: 'WEB_CHAT/SEND_POST_BACK',
                      payload: { value }
                    });
                    break;
                  default:
                    store.dispatch({
                      type: 'WEB_CHAT/SEND_MESSAGE_BACK',
                      payload: { value, text: value, displayText: value }
                    });
                }
              }}
            >
              <div title = { title }>
                { title }
              </div>
            </button>
            <div />
          </window.React.Fragment>
        ))}
      </div>
    </div>;

  (async function () {

    const res = await fetch('/directline/token', { method: 'POST' });
    const { token } = await res.json();
    const { createStore, ReactWebChat } = window.WebChat;
    const store = createStore();

    const attachmentMiddleware = () => next => card => {
      switch (card.attachment.contentType) {
        case 'application/vnd.microsoft.card.hero':
          return <HeroCardAttachment {...card.attachment.content} store = { store }/>;
        default:
          return next(card);
      }
    };

    window.ReactDOM.render(
      <ReactWebChat
        attachmentMiddleware = { attachmentMiddleware }
        directLine = { window.WebChat.createDirectLine({ token }) }
        store = { store }
      />,
      document.getElementById('webchat')
    );

    store.dispatch({
      type: 'WEB_CHAT/SET_SEND_BOX',
      payload: { text: 'sample:github-repository' }
    });

    document.querySelector('#webchat > *').focus();
  })().catch(err => console.error(err));
</script>

Дополнительные сведения о промежуточном программном обеспечении для вложений см. в этом образец.

Надеюсь это поможет.

Другие вопросы по теме

Похожие вопросы

Значок загрузчика в веб-чате Bot Framework
Каков правильный способ аутентификации от JavaScript в HTML-файле до элемента управления Microsoft Web Chat для Bot Framework v4?
Платформа ботов — Skype для бизнеса
Приветственное сообщение с интерфейсом Ibot
Есть ли способ включить параметр календаря в качестве входа в чат-бот V4 C#, кроме использования адаптивных карточек?
Японский символ в AdaptiveCard Bot Framework V4
Adaptive Card возвращает неопределенное значение в Microsoft Teams, но хорошо работает в эмуляторе бота
[BotFramework]: есть ли способ отобразить приглашение Oauth в карточке героя или адаптивной карточке в BOT, разработанном с использованием SDK V4 на C#?
Запрос упреждающего сообщения канала Skype через некоторое время получает 500 (внутренняя ошибка сервера)
Как исправить проблемы, связанные с параметрами выбора приглашения DirectLineChannel, которые не отображаются в окне чат-бота, разработанного с использованием V4 SDK на C#?