Это едва ли возможно. Веб-чат предназначен для того, чтобы не говорить, если пользователь не произнес первого ( см. Первый абзац после первого изображения ).
Обойти это можно, обманув ВебОбщайтесь, думая, что пользователь уже говорил, отправив поддельное речевое сообщение со следующим кодом (в вашем .html
файле, где размещен веб-чат):
<script>
// Must create store so we can send command
const store = window.WebChat.createStore();
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({ secret: 'YourBotSecret' }),
// Add speech capability
webSpeechPonyfillFactory: window.WebChat.createBrowserWebSpeechPonyfillFactory(),
store
}, document.getElementById('webchat'));
document.querySelector('#webchat > *').focus();
// When mic button is clicked, send message as though user has spoken
// Note: 'test' will not be displayed at all to the user. You can replace it with anything.
document.querySelector('[title="Speak"]').addEventListener('click', () => {
store.dispatch({
type: 'WEB_CHAT/START_SPEAKING',
payload: { text: 'test' }
});
});
// Programatically click the mic button
document.querySelector('[title="Speak"]').click();
// Programatically click the mic button back off
window.setTimeout(() => document.querySelector('[title="Speak"]').click(), 500);
// Stop listening
document.querySelector('[title="Speak"]').removeEventListener('click', () => {
store.dispatch({
type: 'WEB_CHAT/START_SPEAKING',
payload: { text: 'test' }
});
});
</script>
Важное примечание: Chrome это не нравится :
![enter image description here](https://i.stack.imgur.com/lZvp1.png)
Способ only - заставить пользователявзаимодействовать с сайтом в первую очередь. Любое из этих взаимодействий работает.Ключевым моментом является то, что событие должно иметь isTrusted
, то есть только , доступное для реальных взаимодействий с пользователем.Как вы это делаете, зависит от вас.Возможно, вы заставляете пользователя нажимать кнопку «запускать бот» перед подключением чата.
Ссылки