handleMethodCall method

Future handleMethodCall(
  1. MethodCall call
)

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());
  }
}