collectNativeClass method
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;
}