Javascript Botframework WebChat-为什么不';它不能与Internet Explorer一起使用吗?

Javascript Botframework WebChat-为什么不';它不能与Internet Explorer一起使用吗?,javascript,internet-explorer,botframework,direct-line-botframework,Javascript,Internet Explorer,Botframework,Direct Line Botframework,我已经让webchat在Chrome中正常工作,但在IE中没有。 我的应用程序是一个有角度的网站,使用WebChat连接到我的机器人 代码如下所示(从技术上讲,这是TypeScript,而不是JavaScript,箭头函数是透明的): 在Internet Explorer中,我在控制台中遇到以下错误: 错误类型错误:您提供了一个无效的对象,其中包含一个流 预期。您可以提供一个可观察的、承诺的、数组的或可观察的 如果我将botConnection:this.directLine切换到directL

我已经让webchat在Chrome中正常工作,但在IE中没有。 我的应用程序是一个有角度的网站,使用WebChat连接到我的机器人

代码如下所示(从技术上讲,这是TypeScript,而不是JavaScript,箭头函数是透明的):

在Internet Explorer中,我在控制台中遇到以下错误:

错误类型错误:您提供了一个无效的对象,其中包含一个流 预期。您可以提供一个可观察的、承诺的、数组的或可观察的

如果我将
botConnection:this.directLine
切换到
directLine:this.directLine
,webchat会工作,但是永远不会调用changeSize()方法


感谢您的帮助。此bot正在公共网站上运行,必须支持IE。

IE中不支持箭头功能:

如果将共享的代码修改为使用实际函数,则该代码应在IE中工作:

    this.directLine.activity$
        .filter(isInitEvent)
        .subscribe(changeSize);

...

    function isInitEvent(activity) {
        return activity.type === "event" && activity.name === "init";
    }

    function changeSize(activity) {
        console.log("here")
        var container = document.getElementById("bot");
        container.classList.add("fullSize");
    }  

我找到了答案。在阅读了发布的答案和评论之后,我创建了这段代码的“普通”html/JavaScript版本,正如上面Eric Dahlvang所说,它工作得非常好。然后我把注意力集中在事情的角度上

然后我注意到我的原始Angular代码与我的纯JavaScript版本和这里的示例有一个区别:。我做了一个简单的改变:

更改为:
directLine:directLine=newdirectline({secret:environment.botDirectLineSecretKey})

为此:
directLine:directLine=new-BotChat.directLine({secret:environment.botDirectLineSecretKey})
(注意,我现在使用的是BotChat.directLine


一切正常。不幸的是,我不知道为什么。

这是一个冒险,但是你在
之前尝试过
。订阅
。过滤
谢谢,但是没有。我明白了。类型“订阅”上不存在属性“筛选器”。但是值得一试。谢谢你的回复。不幸的是,我仍然得到错误。如果我在IE中展开错误消息,可以在e.prototype.error处获得此堆栈跟踪:
(https://cdn.botframework.com/botframework-webchat/latest/botchat.js:6:4949)
此外,我对此进行了更多的研究。抱歉,我不清楚,但我的代码是TypeScript,因此箭头函数被传输出去。@Schwammy,如果我们没有更多信息/代码详细信息,几乎不可能提供更多帮助。Webchat正在开发IE,这只是您这边的一个特定点,我们需要更多细节,以便看到您修复它。想知道为什么TypeScript没有捕捉到
new DirectLine()
,因为在您的情况下
DirectLine
似乎未定义。
    this.directLine.activity$
        .filter(isInitEvent)
        .subscribe(changeSize);

...

    function isInitEvent(activity) {
        return activity.type === "event" && activity.name === "init";
    }

    function changeSize(activity) {
        console.log("here")
        var container = document.getElementById("bot");
        container.classList.add("fullSize");
    }