利用 Apple 的系统 API 和框架
了解提供与 Apple 框架等效功能的 Flutter 插件。
如果你有 iOS 开发背景,可能需要找到与 Apple 系统库功能相同的 Flutter 插件。这可能包括访问设备硬件或与特定的框架(如 HealthKit)进行交互。
有关 SwiftUI 框架与 Flutter 对比的概览,请参阅 面向 SwiftUI 开发者的 Flutter 开发指南。
Flutter 插件介绍
#Dart 将包含平台特定代码的库称为 *插件 (plugins)*,它是“插件包”的缩写。在使用 Flutter 开发应用时,你使用 *插件* 与系统库进行交互。
在你的 Dart 代码中,你使用插件的 Dart API 来调用所使用系统库的本地代码。这意味着你可以编写代码来调用 Dart API。然后,该 API 会使其在插件支持的所有平台上都能正常工作。
要了解关于插件的更多信息,请参阅 使用包。尽管此页面链接了一些流行的插件,但你可以在 pub.dev 上找到成千上万个其他插件及其示例。下表并不认可任何特定插件。如果你找不到满足你需求的包,可以创建自己的包,或者在项目中直接使用平台通道 (platform channels)。要了解更多信息,请参阅 编写平台特定代码。
将插件添加到你的项目中
#要在原生项目中使用 Apple 框架,请将其导入到你的 Swift 或 Objective-C 文件中。
要添加 Flutter 插件,请在项目根目录下运行 flutter pub add package_name。这会将依赖项添加到你的 pubspec.yaml 文件中。添加依赖项后,在你的 Dart 文件中为该包添加一个 import 语句。
你可能需要更改应用设置或初始化逻辑。如果需要,请查阅该包在 pub.dev 上的“Readme”页面以获取详细信息。
Flutter 插件与 Apple 框架
#| 用例 | Apple 框架或类 | Flutter 插件 |
|---|---|---|
| 访问照片库 |
使用 Photos 和 PhotosUI 框架的 PhotoKit 以及 UIImagePickerController |
image_picker |
| 访问摄像头 | 使用 .camera sourceType 的 UIImagePickerController |
image_picker |
| 使用高级相机功能 | AVFoundation |
camera |
| 提供应用内购买 | StoreKit |
in_app_purchase 1 |
| 处理支付 | PassKit |
pay 2 |
| 发送推送通知 | UserNotifications |
firebase_messaging 3 |
| 访问 GPS 坐标 | CoreLocation |
geolocator |
| 访问传感器数据4 | CoreMotion |
sensors_plus |
| 进行网络请求 | URLSession |
http |
| 存储键值对 | @AppStorage 属性包装器和 NSUserDefaults |
shared_preferences |
| 持久化到数据库 | CoreData 或 SQLite |
sqflite |
| 访问健康数据 | HealthKit |
health |
| 使用机器学习 | CoreML |
google_ml_kit 5 |
| 文本识别 | VisionKit |
google_ml_kit 5 |
| 语音识别 | Speech |
speech_to_text |
| 使用增强现实 | ARKit |
ar_flutter_plugin |
| 访问天气数据 | WeatherKit |
weather 6 |
| 访问和管理联系人 | Contacts |
contacts_service |
| 在主屏幕显示快捷操作 | UIApplicationShortcutItem |
quick_actions |
| 将项目索引到 Spotlight 搜索 | CoreSpotlight |
flutter_core_spotlight |
| 配置、更新并与小部件通信 | WidgetKit |
home_widget |
| 使用 Siri/快捷指令自动化应用操作 | AppIntents |
intelligence |
-
同时支持 Android 上的 Google Play 商店和 iOS 上的 Apple App Store。↩
-
在 Android 上添加 Google Pay 支付,在 iOS 上添加 Apple Pay 支付。↩
-
使用 Firebase Cloud Messaging 并与 APNs 集成。↩
-
包含加速度计、陀螺仪等传感器。↩
-
使用 Google 的 ML Kit,支持文本识别、人脸检测、图像标注、地标识别和条形码扫描等多种功能。你还可以通过 Firebase 创建自定义模型。要了解更多信息,请参阅 在 Flutter 中使用自定义 TensorFlow Lite 模型。↩ ↩2
-
使用 OpenWeatherMap API。还有其他可以从不同天气 API 获取数据的包存在。↩