如何正确地将数据从Android发送到Flutter?

问题描述 投票:1回答:1

我正在尝试从Flutter向我的原生平台(在本例中为Android)中来回发送数据。为了保持一些模型的一致性,我使用Protocol-Buffers为所有平台生成了模型。

当我尝试将数据从Android传递给Flutter时,我没有找到任何方法可以在没有shenanigans的情况下执行此操作,例如序列化为手工制作的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

在达特我得到了我的课

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!");
}

到目前为止,我只得到失败或例外。

谢谢!

android dart flutter protocol-buffers
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.