使用 Azure Bot Framework 网络聊天无法点击电话号码

axb*_*eit 5 html azure tel azure-bot-service azure-qna-maker

设置

我使用QnAMakerAzure Bot Service和JavaScript 中的Bot Framework Web Chat客户端创建了一个 Azure QnA Web Chat Bot 。

这是我如何使用 HTML + JS 初始化机器人的示例:

<script src="https://cdn.botframework.com/botframework-webchat/4.6.0/webchat-es5.js"></script>

<div id="projekt-webchat" role="main"></div>
Run Code Online (Sandbox Code Playgroud)
window.WebChat.renderWebChat(
    {
       directLine: window.WebChat.createDirectLine({
          secret: 'SECRETHERE'
       }),
       userID: 'YOUR_USER_ID',
       username: 'Web Chat User',
       locale: 'en-US',
       botAvatarInitials: 'WC',
       userAvatarInitials: 'WW'
    },
    document.getElementById('projekt-webchat')
);
Run Code Online (Sandbox Code Playgroud)

我的机器人连接到来自 QnA Maker 的知识库,其中有一个QnA 对,如下所示:

问题gimmenumber
答案+49 5251 123456

本机浏览器检测

某些浏览器会将其呈现为可点击的超链接,然后我选择拨打该号码。但是,其他浏览器没有将电话号码视为超链接,所以我无法点击它

  • 有效- Microsoft Edge 41
  • 作品- Microsoft EdgeHTML 16
  • 损坏- 谷歌浏览器版本 78
  • 损坏- Microsoft Edge 版本 79

我试图将我的答案从+49 5251 123456以下内容更改为:

  • <a href="tel:123-456-7890">123-456-7890</a>
  • <a rel="nofollow" class="external free" href="tel:+49-30-1234567">tel:+49-30-1234567</a>.

但答案看起来就像这些标签<a></a>不是标签而是普通文本。(所以仍然无法点击,看起来很难看)。

出于好奇,我自己创建了这个 HTML,它对上述所有浏览器都具有相同的情况:

<div>+49 5251 123456</div>
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我可以修吗?如何修复它以便电话号码可点击?

降价渲染

bot 服务还将在答案中呈现 Markdown,以将文本格式化为粗体、斜体或链接。

所以下面的例子有效

<div>+49 5251 123456</div>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用 Markdown 呈现电话号码时,我仍然遇到问题。这是我迄今为止尝试过的:

//making headings works with this
await turnContext.SendActivityAsync(MessageFactory.Text("# " + turnContext.Activity.From.Id));
//bold works
await turnContext.SendActivityAsync(MessageFactory.Text("**" + turnContext.Activity.From.Id + "**"));
Run Code Online (Sandbox Code Playgroud)

最终会像这样错误地渲染:

示例聊天机器人输出与电话不工作

小智 0

您可能应该在单独的元素中显示电话号码。当元素显示为内联块时,网络浏览器将不会创建超链接。