registerJavaScriptMessageHandler method

  1. @override
Future<void> registerJavaScriptMessageHandler(
  1. String name,
  2. JavaScriptMessageHandler handler
)
override

Install a message handler that you can call from your Javascript code.

available: macOS (10.10+)

Implementation

@override
Future<void> registerJavaScriptMessageHandler(
  String name,
  JavaScriptMessageHandler handler,
) async {
  if (!Platform.isMacOS) {
    throw UnsupportedError(
      'JavaScript message handlers are only supported on macOS.',
    );
  }
  _ensureOpen();
  if (name.trim().isEmpty) {
    throw ArgumentError.value(name, 'name', 'Must not be empty.');
  }
  if (_javaScriptMessageHandlers.containsKey(name)) {
    throw StateError('JavaScript handler "$name" is already registered.');
  }
  _javaScriptMessageHandlers[name] = handler;
  await channel.invokeMethod("registerJavaScripInterface", {
    "viewId": viewId,
    "name": name,
  });
}