根据文档,我在将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

09-11 07:12