在网络聊天机器人中发送消息后,如何在 Android 上继续显示虚拟键盘?

问题描述

我们有一个使用机器人框架的聊天机器人。前端使用 The Bot Framework Web Chat 组件 (https://github.com/microsoft/BotFramework-WebChat) 通过直线连接到它。

我们在我们的网站上使用这个聊天机器人,它也为使用虚拟键盘的移动用户(Android/iOS)提供服务。到目前为止,我们只能在 Android 上测试我们的代码

用户点击聊天机器人文本框时,虚拟键盘就会出现。用户键入消息并按下键盘上的 Enter 键。消息被发送,键盘仍然可见,用户可以发送另一条消息。到目前为止一切都很好。

但是如果用户使用按钮而不是回车键发送消息,虚拟键盘就会消失。

Enter key with orange arrow,and send button with red arrow

这意味着更喜欢使用发送按钮而不是回车键的用户每次发送消息时都必须单击文本框以重新打开键盘。这种行为很烦人,我们不想惹恼我们的用户。所以我的任务是解决这个问题。

我尝试使用以下方法显示键盘

var buttons = document.getElementsByClassName("webchat__icon-button");
for (i = 0; i < buttons.length; i++) {
  buttons[i].addEventListener("click",focuschatbotInput);
}                

function focuschatbotinput() {
  let textBox = document.getElementsByClassName("webchat__send-Box-text-Box__input")[0];
  if (textBox) {
    textBox.focus();
  }
}

我还尝试从整个网络聊天 div 的点击事件中调用 focuschatbotInput。当用户单击 div 中除发送按钮外的任何位置时,这确实会打开键盘

我也尝试制作自己的自定义发送按钮

<button onclick="focuschatbotinput(); document.getElementsByClassName("webchat__icon-button")[1].click();">Send</button>

这不起作用。

似乎发送按钮单击事件处理程序中库中的某些内容中断了对文本框的关注。

有人知道如何解决这个问题吗?任何帮助表示赞赏。提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)