Как правильно отправлять данные с Android на Flutter? - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь отправлять данные из 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!");
}

Пока я получаю только Сбои или Исключения.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...