setupBridge method

  1. @override
bool setupBridge(
  1. String channelName,
  2. void fn(
    1. dynamic args
    )
)
override

Implementation

@override
bool setupBridge(String channelName, void Function(dynamic args) fn) {
  final channelFunctions = JavascriptRuntime.channelFunctionsRegistered[_instanceId]!;

  if (channelFunctions.containsKey(channelName)) {
    return false;
  }

  channelFunctions[channelName] = fn;

  // Register channel in JavaScript
  _evaluateJS('''
    (function() {
      if (!window.__flutter_js_channels) {
        window.__flutter_js_channels = {};
      }
      window.__flutter_js_channels['$channelName'] = function(args) {
        // This will be called from sendMessage
        return window.__flutter_js_sendMessage('$channelName', JSON.stringify(args));
      };
    })();
  ''');

  return true;
}