invokePlatformMethod method
调用平台的接口
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;
}