2

语境 -

我正在为我们的一个 BI 应用程序构建一个基于 Javascript 的自定义组件。它是一个简单的基于 Web 的组件,允许用户使用 DirectLine 通道与 Microsoft bot 聊天。

经过一番努力,我能够在我正在构建的自定义组件中加载 botchat 库(Javascript 文件),但是对库的调用总是抛出错误“Uncaught ReferenceError: BotChat is not defined”

这是我用来通过 DirectLine 通道调用 botchat 库的代码-

                    BotChat.App({
                    directLine: { secret: 'wtt1zOP02nU.cwA.1ww-DUMMY-SECRET' },
                    user: { id: 'TestBot' },
                    bot: { id: 'TestBot' }
                  }, document.getElementById("BotChatGoesHere"));

如果我在 HTML 网页上运行代码没有问题,它可以完美运行。在调用 javascript 组件时,它会抛出“Uncaught ReferenceError: BotChat is not defined”。

我可以看到该库已正确加载-请参阅 chrome 的网络资源屏幕截图-

在此处输入图像描述

这是 CDN - https://cdn.botframework.com/botframework-webchat/latest/botchat.js

botchat.js 中的代码定义如下 -

    ! function(t, e) 
    {
        "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.BotChat = e() : t.BotChat = e()
    }(this, function() {
        return function(t) {
            function e(r) {
                if (n[r]) return n[r].exports;
                var o = n[r] = {
                    i: r,
                    l: !1,
                    exports: {}
                };
                return t[r].call(o.exports, o, o.exports, e), o.l = !0, o.exports
            }
...........
........... 
});

我已经尝试了多种方法 - 我没有引用外部库,而是复制了整个 botchat.js 代码并粘贴到我调用 BotChat.App 的同一个组件函数中

还尝试使用“this.BotChat.App({..});” 它仍然失败。

但是,对于同一组件 js 文件中的外部 javascript 文件/函数,示例测试函数调用都可以使用相同的方法。

尝试实例化 BotChat,但失败并出现错误 - BotChat 不是构造函数。它基本上是对象类型。

你能帮我用其他方式调用 BotChat 吗?可能在 Jquery 中?或者我做错了什么?

4

0 回答 0