request method
common request method
Implementation
Future<dynamic> request(
dynamic map,
// do your business logic in this call back
Future<Map?> Function(Map reqData) run,
) async {
if (map == null) {
return;
}
var req;
bool isDart;
if (map is Map) {
isDart = true;
req = map;
} else {
isDart = false;
req = jsonDecode(map);
}
final pageName = req['pageName'];
var request = req['request'];
if (isDart) {
request = req;
}
final callId = request['callId'];
final completeCallback = request['callback'];
final response = await run(request);
// 需要判断发起方的请求是dart端还是js端
if (isDart) {
completeCallback?.call(response);
return Future.value();
} else {
final resp = {
'callId': callId,
'pageName': pageName,
'response': response,
};
return Future.value(jsonEncode(resp));
}
}