A stream wrapping JavaScript’s window.onmessage that is safe to import even on platforms other than web.

Purpose

In web apps, you can listen to events from other frames like this:

import 'dart:html' as html;

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

However, dart:html is not available on platforms other than web. If you use it, your app cannot be built there.

This package provides a wrapper for that stream of messages that can be used on all platforms. On platforms other than web, the stream would just produce no events.

Usage

import 'package:onmessage/onmessage.dart';

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

MessageEvent class from this package is an independent class with fields copied from the original html.MessageEvent. It is provided so that you can have an API independent from web.

GitHub

View Github