我想从原生端到Flutter检索一些其他信息,如名称和ID。但是不允许任何自定义类型的列表。有人可以建议解决方案。?
在Android方面---
if (methodCall.method.equals("fetch_contacts")) {
List<Contact> contactList = getContacts();
result.success(contactList);
} else {
result.notImplemented();
}
在颤抖的一面 -
List<dynamic> contactsList = await methodChannel.invokeListMethod('fetch_contacts');
以上android端代码给出了IllegalStateException,因为它无法发送Contact模型。
Contact
是一个Java对象,因此无法通过方法通道发送。它会在Dart结束时变成什么?您可以创建一个Dart类,也称为Contact
,但即便如此,您也无法发送它。您需要定义一种方法,将对象序列化/反序列化为将遍历方法通道的部分。 (有关可以穿越的基本对象,请参阅StandardMessageCodec。)
以下是一些序列化对象的可能方法: