Как мы можем настроить значок отправки и добавить микрофон в azure фреймворк чата? (относительно nodejs или javascript) - PullRequest
0 голосов
/ 13 января 2020

Этот код работает для меня botframework v4, но есть ли варианты настроить azure чат-бот?

Я хочу добавить кнопку микрофона, а также добавить опцию карты.

канал веб-чата использовался с LUIS

const styleSet = window.WebChat.createStyleSet({
   bubbleFromUserBackground: '#d1e6f7',
   bubbleBackground: '#eeeeee',
   bubbleBorderColor: '#E6E6E6',
   bubbleBorderRadius: 2,
   bubbleBorderStyle: 'solid',
   bubbleBorderWidth: 1,
   sendBoxButtonColor: '#faa638',
   microphoneButtonColorOnDictate: '#F33',
   hideUploadButton: true,
   showSpokenText: true,
   hideSendBox: false
});        
// After generated, you can modify the CSS rules
styleSet.textContent = {
   ...styleSet.textContent,
   fontFamily: "'GothamMedium',Calibri,sans-serif",
   fontWeight: 'normal',
   fontSize: '10pt',
   color: '#848484',
   enableUploadThumbnail: true,
   uploadThumbnailContentType: 'image/jpeg',
   uploadThumbnailHeight: 360,
   uploadThumbnailQuality: 0.6,
   uploadThumbnailWidth: 720       
};
styleSet.MicrophoneButton = { ...styleSet.MicrophoneButton

};

window.WebChat.renderWebChat(
   {
      directLine: window.WebChat.createDirectLine({
      secret: '###########################################'
      }),

      // Passing 'styleSet' when rendering Web Chat
      styleSet              
   },
   document.getElementById('webchat')
);
    </script>

1 Ответ

0 голосов
/ 24 января 2020

Относительно стиля как кнопки отправки, так и кнопки микрофона:

Технически, можно отобразить обе кнопки, манипулируя DOM. Проблема в том, что веб-чат (когда речь не включена) использует набор классов и методов для рендеринга и обеспечения функциональности кнопки отправки. Но когда речь включена и микрофон воспроизводится, некоторые классы перезаписываются, что делает недоступными классы, необходимые для кнопки отправки. В результате, хотя обе кнопки могут отображаться одновременно, только речевая кнопка будет работать.

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

Относительно карт и местоположений:

Это гораздо более достижимо и не требует каких-либо дополнительных пакетов, Тем не менее, есть те, которые могут быть полезны в зависимости от ваших потребностей.

Самый простой способ сделать это - опубликовать задание обратно в бота. Это может происходить при загрузке страницы, через некоторое взаимодействие с страницей (то есть нажатие кнопки) и т. Д. c. Пример d.post-activity-event из репозитория BotFramework-WebChat демонстрирует, как можно настроить что-то подобное.

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

const geoLoc = async () => {
  await navigator.geolocation.getCurrentPosition(position => {
    console.log('Latitude: ', position.coords.latitude);
    console.log('Longitude: ', position.coords.longitude);
  });
}

geoLoc();

Надежда на помощь!

...