dart - 在Dart中收听JS CustomEvent

标签 dart dart-html dart-js-interop

我知道我的问题并不新鲜,但是我在这里和Internet上找到的所有解决方案均不起作用:(或者,我做错了什么。

我需要在Dart和JS之间建立通信,并且我想使用事件,因为这个想法看起来很简洁。

因此,我尝试了本教程:https://dart.academy/easy-dart-js-interopt/

我的JS代码:

var customEvent = new CustomEvent("fromJavascriptToDart");
window.onload = document.dispatchEvent(customEvent);
document.addEventListener("fromJavascriptToDart", test, false);
function test() {
    console.log("Listening");
}

正如我在控制台日志中看到“监听”一样,事件已调度。

但是当涉及到 Dart 时,没有任何效果。

我尝试了以下方法,但一切都失败了:
document.on['fromJavascriptToDart'].listen((CustomEvent event) {
                    print("HEY! I'M LISTENING!");
                });
window.on["fromJavascriptToDart"].listen((e) => print( "HEY! I'M LISTENING!"));
window.on['foo'].add((e) => print(e.detail)); //This is not working, as there is no add method in Stream Event anymore
@Listen('fromJavascriptToDart')
    void eventTest(){
        print("HEY! I'M LISTENING!");
    }

任何帮助大都赞赏。

最佳答案

DartPad example

document.on['fromJavascriptToDart'].listen((CustomEvent event) {
  print("HEY! I'M LISTENING!");
});

工作正常。
  • @Listen()是聚合物特定的
  • add不存在(应使用上面显示的listen)
  • 该事件似乎未达到window,但是我确定这在纯JS中的行为相同。
  • 关于dart - 在Dart中收听JS CustomEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43639541/

    相关文章:

    flutter - Dart 。带参数的枚举

    dart - Shadowdom 是否改变了 ids 的规则

    Dart 对象到 native - UnimplementedError : structured clone of other type

    dart - 使用 ImageElement 绘制图像

    dart - 如何使用window.location.search

    dart - 如何使用新的 js 0.6.0 包将 Dart 类映射到 JS "class"?

    javascript - 无法建立项目

    java - Firebase 网络问题?

    dart - JsObject 的匿名回调函数在用户操作之前不会更新 Dart Controller

    jquery - 如何从 angular.dart 组件内部调用 jquery 插件?