initializeChannel method
void
initializeChannel()
Implementation
void initializeChannel() {
_controller.addJavaScriptChannel(
'flenderChannel',
onMessageReceived: (JavaScriptMessage message) async {
try {
final data = jsonDecode(message.message) as Map<String, dynamic>?;
if (data == null) return;
final command = data['command'] as String?;
if (command != 'callPlugin') return;
final pluginName = data['plugin'] as String?;
final method = data['method'] as String?;
final requestId = data['requestId'] as int?;
final payload = data['payload'];
if (pluginName == null || method == null || requestId == null) {
return;
}
final plugin = _plugins[pluginName];
if (plugin == null) {
_respondError(requestId, 'Plugin "$pluginName" not found');
return;
}
final result = await plugin.onCall(method, payload);
_respondSuccess(requestId, result);
} catch (e) {
_respondError(-1, 'FlenderChannel parse error: $e');
}
},
);
}