Skip to content

BroadcastChannel is not a type. #96

Closed

Description

@jay-athelas

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

Activity

  1. dab246 commented on Mar 25, 2024

    @dab246
    Contributor

    You can use 1 of the following 2 ways:

    1. 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';
    
    1. Wait for PR #97 to be merged for use.
  2. jay-athelas commented on Mar 26, 2024

    @jay-athelas
    Author

    Thanks @dab246 , awesome, do you have an estimate of when this PR might be merged?

  3. terrier989 commented on Nov 16, 2025

    @terrier989
    Member

    It was merged now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions