Я пытаюсь отправлять данные из Flutter туда и обратно на мою родную платформу (в данном случае Android).Чтобы сохранить согласованность моделей, я сгенерировал модели для всех платформ с использованием Protocol-Buffers.
Когда я пытаюсь передать данные из Android во Flutter, я не нахожу никакого способа сделать это без махинацийкак сериализация в JSON ручной работы.
Для этого должен быть способ использовать protobuf, не так ли?
Чтобы создать контекст, я создал минимальное приложениечтобы попытаться решить эту проблему:
Мой буфер протокола
syntax = "proto3";
option java_package = "com.test.protobuf_test";
option java_outer_classname = "ProtoModel";
message SimplePerson {
int32 id= 1;
string name= 2;
}
Из которого я генерирую свою модель, используя: protoc --java_out и protoc --dart_out
In DartЯ получаю свой класс
class SimplePerson extends $pb.GeneratedMessage {...}
И на Java
public final class ProtoModel {
...
public static final class SimplePerson extends
com.google.protobuf.GeneratedMessageV3 implements
SimplePersonOrBuilder {...}
}
С Android внутри моего канала методов я пытаюсь передать один или несколько объектов ProtoModel.SimplePerson обратно в Dart.
Пока безуспешно.
Как бы вы на самом деле это сделали?Я ожидаю, что это будет что-то вроде В Java:
ProtoModel.SimplePerson person = ProtoModel.SimplePerson.newBuilder().setId(3).setName("Person Name").build();
result(person);
И в Дартс:
var result = await platform.invokeMethod("generatePerson");
if(result is SimplePerson) {
print("Success!");
} else {
print("Failure!");
}
Пока я получаю только Сбои или Исключения.
Спасибо!