我正在尝试将数据从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
在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);
在Dart中:
var result = await platform.invokeMethod("generatePerson");
if(result is SimplePerson) {
print("Success!");
} else {
print("Failure!");
}
到目前为止,我只遇到失败或异常。
谢谢!
答案 0 :(得分:0)
您非常接近您的使用结果,但是我让它与result.success一起工作
"%m%d"
此处的最佳示例https://www.freecodecamp.org/news/flutter-platform-channels-with-protobuf-e895e533dfb7/
编辑没有看到这篇文章的年龄 我必须使用它,因为鸽子可以尽早使用,尽管鸽子通常很难设置,但我还是更喜欢