collectNativeClass method

List<NativeClass> collectNativeClass(
  1. List args
)

Collect all native class instances from arguments

Implementation

List<NativeClass> collectNativeClass(List<dynamic> args) {
  //IOS传递的参数为map[] 或 dynamic[]格式,若为map需要对map获取value后进行await
  if (Platform.isIOS) {
    args = args.map((arg) {
      // 类型判断:如果是Map格式则提取value,否则直接使用值
      if (arg is Map && arg.containsKey('value')) {
        return arg['value'];
      } else {
        return arg; // 纯值数组直接返回原值
      }
    }).toList();
  }
  final result = <NativeClass>[];
  for (final arg in args) {
    if (arg is NativeClass) {
      result.add(arg);
    }
    if (isArray(arg)) {
      result.addAll(collectNativeClass(arg));
    }
    if (isObject(arg)) {
      result.addAll(collectNativeClass(arg.values.toList()));
    }
  }
  return result;
}