handleMethodCall method
Handles method calls over the MethodChannel of this plugin. Note: Check the "federated" architecture for a new way of doing this: https://flutter.dev/go/federated-plugins
Implementation
Future<dynamic> handleMethodCall(MethodCall call) async {
var args = <String, dynamic>{};
if (call.arguments != null) {
args = Map<String, dynamic>.from(call.arguments);
}
if (call.method == 'callApi') {
int apiType = args['apiType'];
if (apiType == 0) {
_engine(args).setEventHandler(allowInterop((String event, String data) {
_controllerEngine.add({
'methodName': event,
'data': data,
'subProcess': _engine(args) == _engineSub,
});
}));
_engine(args)
.channel
.setEventHandler(allowInterop((String event, String data) {
_controllerChannel.add({
'methodName': event,
'data': data,
});
}));
}
String param = args['params'];
return promiseToFuture(_engine(args).callApi(apiType, param));
} else {
throw PlatformException(code: ErrorCode.NotSupported.toString());
}
}