registerWith static method

void registerWith(
  1. Registrar registrar
)

Implementation

static void registerWith(Registrar registrar) {
  final MethodChannel channel = MethodChannel(
    'plugins.zego.im/zego_express_engine',
    const StandardMethodCodec(),
    registrar,
  );

  // ignore: unused_local_variable
  final eventChannel = PluginEventChannel(
      'plugins.zego.im/zego_express_event_handler',
      const StandardMethodCodec(),
      registrar);

  final pluginInstance = ZegoExpressEngineWeb();
  channel.setMethodCallHandler(pluginInstance.handleMethodCall);
  eventChannel.setController(ZegoExpressEngineWeb._evenController);

  _evenController.stream.listen((event) {
    _eventListener(event);
  });

  // 获取所有 <script> 标签
  List<Element> scripts = document.querySelectorAll('script');
  // 查找包含 'ZegoExpressWebFlutterWrapper' 的脚本
  final zegoScript = scripts.firstWhere(
    (script) =>
        script.attributes['src']?.contains('ZegoExpressWebFlutterWrapper') ??
        false,
    orElse: () => Element.div(),
  );
  if (zegoScript.tagName.toLowerCase() == 'div') {
    var element = ScriptElement()
      ..src =
          'assets/packages/zego_express_engine/assets/ZegoExpressWebFlutterWrapper.js'
      ..type = 'application/javascript';
    document.body!.append(element);
  }
}