FIDL:Flutter与原生通讯的新姿势,不局限于基础数据类型

本文介绍了FIDL(Flutter Interface Definition Language),一种用于Flutter与原生应用之间通信的新方法,详细阐述了如何在Android和Flutter两侧进行设置,包括对象的序列化和反序列化。通过FIDL,开发者可以方便地传输复杂对象,如自定义类、枚举、集合和Map,而无需手动编写序列化代码。文章还提到了FIDL的更多潜在功能和未来发展方向。
摘要由CSDN通过智能技术生成

上面的例子中的Map,一般来说,在Java中会对应一个类:

public class User {
String name;
int age;
String country;
Gender gender;
}
enum Gender {
MALE, FEMALE
}

如果想让flutter传输这个对象而不用在flutter层手动去编写User这个类,以及编写fromJson/toJson方法,你可以这样做:

Android侧

1、定义一个接口,添加注解@FIDL。这个注解将告知annotationProcessor生成一些接口和类的描述文件。

@FIDL
public interface IUserService {
void initUser(User user);
}

接口方法的限制如下:

  • 由于dart不支持方法重载,所以接口中不能出现同名方法
  • 参数只支持实体类,不支持回调
  • 由于JSON解码的限制,Java需要有无参构造函数

2、Android Studio点击sync,或者执行:

./gradlew assembleDebug

然后就会产生一堆json文件,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oCVMvuSt-1647447065078)(https://user-gold-cdn.xitu.io/2020/3/16/170e226e1aeed837?imageView2/0/w/1280/h/960/ignore-error/1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值