invokePlatformMethod method

Future<Map<String, dynamic>?> invokePlatformMethod(
  1. String serviceName,
  2. String method, {
  3. Map<String, dynamic>? arguments,
})

调用平台的接口

Implementation

Future<Map<String, dynamic>?> invokePlatformMethod(
  String serviceName,
  String method, {
  Map<String, dynamic>? arguments,
}) async {
  Completer<Map<String, dynamic>> completer = Completer();
  final Map<String, dynamic> callInfoMap = {
    'serviceName': serviceName,
    'method': method,
    'params': JsObject.jsify(arguments!),
    'successCallback': allowInterop((res) {
      Map<String, dynamic> map =
          jsonDecode(context['JSON'].callMethod('stringify', [res]));
      completer.complete(map);
    }),
    'errorCallback': allowInterop((err) {
      Map<String, dynamic> map =
          jsonDecode(context['JSON'].callMethod('stringify', [err]));
      completer.complete(map);
      // completer.completeError(err);
    })
  };

  context.callMethod('dartCallNativeJs', [JsObject.jsify(callInfoMap)]);
  return completer.future;
}