universal_html
universal_html copied to clipboard
BroadcastChannel is not a type.
I am trying to use the BroadcastChannel api , to send communication between a service worker and the main thread. Our app is hybrid, currently support web, ios and android.
Even when importing from import 'package:universal_html/html.dart'; I get a compilation error when trying to build for ios, stating that BroadastChannel is not a type. I can click on it and see the definition in html_dart2js.dart. What is going on here?
To replicate:
- Import universal html
- Use BroacastChannel
BroadcastChannel? _channel; - Compile for ios
You can use 1 of the following 2 ways:
- Use of
conditional imports/exports
- Create 'broadcast_channel_stub.dart' to use for mobile:
class BroadcastChannel {
final String name;
BroadcastChannel(this.name);
Stream<dynamic> get onMessage => const Stream.empty();
}
- Create 'broadcast_channel_web.dart' to use for web:
export 'dart:html' show BroadcastChannel;
- Create 'broadcast_channel.dart' to use for all platforms:
export 'broadcast_channel_stub.dart' if (dart.library.html) 'broadcast_channel_web.dart';
- Wait for PR #97 to be merged for use.
Thanks @dab246 , awesome, do you have an estimate of when this PR might be merged?