根据文档,我在将botframework实现到本地运行的我的angular应用程序时遇到了一些麻烦
简便:在非反应式网站中,内联运行Web Chat
添加DirectLine(不是Web聊天)频道,并生成Direct Line Secret。确保启用Direct Line 3.0。
在您的网站上包含botchat.css和botchat.js,例如:
<!DOCTYPE html>
<html>
<head>
<link href="https://cdn.botframework.com/botframework-webchat/latest/botchat.css" rel="stylesheet" />
</head>
<body>
<div id="bot"/>
<script src="https://cdn.botframework.com/botframework-webchat/latest/botchat.js"></script>
<script>
BotChat.App({
directLine: { secret: direct_line_secret },
user: { id: 'userid' },
bot: { id: 'botid' },
resize: 'detect'
}, document.getElementById("bot"));
</script>
</body>
</html>
现在,我在标头和js文件中插入了构建CSS的本地路径,然后在我的组件中声明了变量BotChat
declare var BotChat;
然后将脚本放入构造函数中
constructor() {
BotChat.App({
directLine: { secret: direct_line_secret },
user: { id: 'userid' },
bot: { id: 'botid' },
resize: 'detect'
}, document.getElementById("bot"));
}
但它似乎也无法在控制台中收到此错误
Loading failed for the <script> with source
“http://localhost:4200/BotFramework-WebChat-master/botchat.js”
和
Error: [object Object]
Stack trace:
resolvePromise@http://localhost:4200/polyfills.bundle.js:7633:31
任何帮助,将不胜感激
最佳答案
在您的chatsidebar.component.ts中添加所有import语句之后declare var BotChat;
这实际上是打字稿的方式,它告诉您在其他位置声明了一些全局变量,并且您想使用它。
declare keyword
另外,请尝试使用有角度的renderer2而不是直接进行dom操作。
Angular renderer