onmessage 0.2.0 copy "onmessage: ^0.2.0" to clipboard
onmessage: ^0.2.0 copied to clipboard

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

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.
  });
  // ...
}
copied to clipboard

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

The Dart team recommends conditional import of files that use dart:html which gets your app complex. And even then you must silence a linter warning of importing dart:html in a non-web-only package.

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.
  });
  // ...
}
copied to clipboard

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.

9
likes
150
points
355
downloads

Publisher

verified publisherainkin.com

Weekly Downloads

2024.10.02 - 2025.04.16

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

Repository (GitHub)

Documentation

API reference

License

MIT-0 (license)

Dependencies

meta

More

Packages that depend on onmessage