一个包装了 JavaScript 的 window.onmessage 的流,即使在 Web 以外的平台上也可以安全地导入。

目的

在 Web 应用中,您可以像这样监听来自其他帧的事件

import 'dart:html' as html;

void main() {
  html.window.onMessage.listen((html.MessageEvent event) {
    // Handle.
  });
  // ...
}

但是,dart:html 在 Web 以外的平台上不可用。如果使用它,您的应用将无法在那里构建。

此包提供了该消息流的包装器,可以在所有平台上使用。在 Web 以外的平台上,该流只会产生零事件。

用法

import 'package:onmessage/onmessage.dart';

void main() {
  OnMessage.instance.stream.listen((MessageEvent event) {
    // Handle.
  });
  // ...
}

此包中的 MessageEvent 类是一个独立的类,其字段已从原始 html.MessageEvent 复制。它被提供出来,以便您可以使用一个与 Web 无关的 API。

GitHub

查看 Github