botframework - 有没有办法在 WebChat 中检查用户输入文本框是否处于活动状态?
问题描述
我正在使用 Bot Framework WebChat 作为我的 Bot 的 UI。对于我的场景,我需要知道用户当前是否正在通过语音或键入在输入文本框中输入一些数据。WebChat 中是否有任何方法可以检查当前是否有一些输入被馈送到输入框?我没有在我的应用程序中使用 React,因此在使用 React 托管时可能无法使用 WebChat 提供的各种 React Hooks。
解决方案
最简单的方法是使用eventListener()
放置在您的页面中。目前,输入框位于脚本窗口下方的一个div中,具有“表单”的作用。里面是一个带有“main”类的div。在那里,您可以找到应该只有一个的输入元素。
现在,Web Chat 中可能还有其他元素具有“表单”的作用,它们可以是本机的,也可以是作为其他 Web Chat(或其他)代码的功能添加的。因此,您需要在编写代码时牢记这一点。下面,出于同样的原因,即使只有一个,我也会在“form”中选择所有具有“main”类的元素。如果你有信心,你可以把这一步删掉。
开箱即用,这将起作用:
const form = document.querySelectorAll('form');
const main = form[0].querySelectorAll('main');
const input = main[0].querySelector('input');
input.addEventListener('keyup', () => {
console.log('typing');
})
显然,您可以尝试使用其他事件类型来找到适合您需求的合适方式。
希望有帮助!
推荐阅读
- c - 尝试打印数组时不断出现分段错误(核心转储)
- java - 如果值为空或“”,是否可以将我的 EditText 设置为不可见?
- r - RDCOMClient 故障 - 连接到 Outlook 的程序停止工作
- python-3.x - 不使用 Selenium 抓取站点数据
- html - 添加指向特定行的链接
- python - 为什么 set() 反转列表?
- azure - 如何使用 JMeter 将负载测试应用于 Azure 事件中心触发的消费者功能,以找出消费者的处理速度与出口速度的比率?
- ruby-on-rails - 我应该如何制作涉及不同模型属性的自定义表单?
- python - Cuda 10.2 和 pytorch 1.5 – OSError: [WinError 126] The specified module could not be found
- python - Python中耦合向量场的Runge-Kutta