gpt4 book ai didi

html - 使用 Azure Bot Framework Web 聊天无法单击电话号码

转载 作者:行者123 更新时间:2023-12-03 17:27:27 26 4
gpt4 key购买 nike

设置

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

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

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

<div id="projekt-webchat" role="main"></div>
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')
);

我的机器人已连接到来自 QnA Maker 的知识库,该知识库具有如下所示的 QnA 对:

问题:gimmenumber
答案:+49 5251 123456

native 浏览器检测

某些浏览器会将其呈现为可点击的超链接,我选择调用该号码。但是,其他浏览器不会将电话号码视为超链接,因此我无法单击它

  • 工作 - Microsoft Edge 41
  • 有效 - Microsoft EdgeHTML 16
  • 损坏 - Google Chrome 版本 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>

为什么会发生这种情况?我可以修复它吗?我该如何修复它以使电话号码可点击?

Markdown 渲染

机器人服务还会在答案中呈现 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 + "**"));

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

await turnContext.SendActivityAsync(MessageFactory.Text("[example](tel:123456)"));
await turnContext.SendActivityAsync(MessageFactory.Text("[example](tel:+49 5251 123456)"));
await turnContext.SendActivityAsync(MessageFactory.Text("[example](tel:+495251123456)"));
await turnContext.SendActivityAsync(MessageFactory.Text("[example](tel:05251123456)"));
await turnContext.SendActivityAsync(MessageFactory.Text("[example](tel:05251 123456)"));

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

Example Chatbot Output with tel not working

最佳答案

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

关于html - 使用 Azure Bot Framework Web 聊天无法单击电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59196143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com