【发布时间】:2020-03-30 10:38:57
【问题描述】:
设置
我在 JavaScript 中使用 QnAMaker、Azure Bot Service 和 Bot Framework Web Chat 客户端创建了一个 Azure QnA 网络聊天机器人。
这是我如何使用 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
本机浏览器检测
某些浏览器会将其呈现为可点击的超链接并选择呼叫该号码。但是其他浏览器不把电话号码看成超链接,所以我无法点击
- 作品 - 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)"));
最终会像这样错误地渲染:
【问题讨论】:
-
你需要使用以
tel:{number here}作为href的锚点——developer.mozilla.org/en-US/docs/Web/HTML/Element/a -
@Pete imgur.com/a/d9S6g9j 没有工作可悲:(
-
在 chrome 和 edge 中对我来说很好用:jsfiddle.net/ryan4wtu - 你有什么东西可以在你正在测试它的设备上进行调用 - 如果没有,显然什么都不会发生
-
我认为这与 Azure WebChat Bot 本身有关。在 qnamaker.ai 和网络聊天窗口中,消息如下所示:imgur.com/a/IwVwNz3 - 我注意到的另一件事是我可以在 qnamaker.ai 中使用 markdown 格式,例如
[example](tel:12345)。但在网络聊天窗口中,我只看到不可点击的“示例”。 -
我注意到的另一件事:如果我写这样的东西 '**myText**' myText 将在网络聊天窗口中显示为粗体。如果在那些'** **'之间,除了markdown之外还有什么文字会变粗吗?
标签: html azure azure-bot-service qnamaker tel