首页 > 解决方案 > Flutter 项目的 Urban Airship 集成?

问题描述

我们的团队刚刚开始比较 Xamarin 和 Flutter。一开始,Flutter 似乎更新(不那么经过战斗),但在热重载和双原生输出等细节方面更加性感。然而,在久经沙场的战线上,Xamarin 与 Urban Airship 的集成是有据可查的。这是我们项目的症结所在,因为 Urban Airship 是一项要求,因此我们倾向于 Xamarin。

但是为了给 Flutter 一个公平的震动,我想我会问:如何将 Urban Airship 集成到 Flutter 项目中?(显然需要同时使用 Android 和 iOS。)

到目前为止,我的 google-fu 并不乐观。

标签: flutterurbanairship.com

解决方案


Flutter 与原生的、特定于平台的库交互的解决方案是plugins。这是一个可重用的包,主要包含 Dart 代码、一些 swift 或 objC 代码、一些 java 或 kotlin 代码、一个示例/测试 Flutter 应用程序和一些单元测试。Dart 代码定义了一个通用接口,其他语言代码提供到各个平台的绑定,在您的情况下,供应商提供了库。IDE 将为您创建一个完整的插件工作模板,并且有很多示例可以从 pub 中获得灵感。

在实现 ios 本机代码时使用 xcode,在实现 android 特定代码时使用 android studio(或 IDEA)。幸运的是,由于您只是编写了一些绑定,因此本机代码通常相当薄。

通常 Dart 代码调用本地方法,但相反的也可以。本机代码也可以生成事件。Flutter 负责将 Dart 参数和返回值转换为原生值,并支持简单类型、Lists、Maps 等。

您团队中熟悉两个平台上的供应商库的人应该能够定义通用的 Dart api(您使用的功能的子集)并实现本机绑定。该插件处理其余部分。


推荐阅读