addJavaScriptChannel method
Adds a new JavaScript channel to the set of enabled channels.
Implementation
@override
Future<void> addJavaScriptChannel(
JavaScriptChannelParams javaScriptChannelParams) async {
final String channelName = javaScriptChannelParams.name;
if (_messageChannels.containsKey(channelName)) {
throw new ArgumentError(
'A JavaScriptChannel with name `$channelName` already exists.',
);
}
final channel = new web.MessageChannel();
channel.port1.onmessage = (web.MessageEvent e) {
javaScriptChannelParams.onMessageReceived(
new WebWebViewMessage(message: channelName, extraData: e.data));
}.toJS;
_connectMessageChannel(channel);
_messageChannels[channelName] = channel;
}