利用 Apple 的系统 API 和框架
如果你来自 iOS 开发,你可能需要查找提供与 Apple 系统库相同功能的 Flutter 插件。这可能包括访问设备硬件或与 HealthKit
等特定框架进行交互。
有关 SwiftUI 框架与 Flutter 的比较概述,请参阅 适用于 SwiftUI 开发者的 Flutter。
介绍 Flutter 插件
#Dart 调用包含平台特定代码的库称为 插件(plugins),它是“插件包”(plugin package)的简称。在使用 Flutter 开发应用程序时,可以使用 插件与系统库进行交互。
在 Dart 代码中,可以使用插件的 Dart API 调用正在使用的系统库中的原生代码。这意味着您可以编写调用 Dart API 的代码。然后,API 会使其适用于插件支持的所有平台。
要了解有关插件的更多信息,请参阅 使用包。虽然此页面链接到一些流行的插件,但您可以在 pub.dev 上找到数千个其他插件以及示例。下表不认可任何特定插件。如果您找不到满足您需求的包,您可以创建自己的包或直接在项目中使用平台通道。要了解更多信息,请查看 编写平台特定代码。
将插件添加到你的项目
#要在原生项目中使用 Apple 框架,请将其导入到 Swift 或 Objective-C 文件中。
要添加 Flutter 插件,请在项目的根目录中运行 flutter pub add package_name
。这会将依赖项添加到您的 pubspec.yaml
文件中。添加依赖项后,在您的 Dart 文件中添加该包的 import
语句。
您可能需要更改应用程序设置或初始化逻辑。如果需要,该包在 pub.dev 上的“自述文件”(Readme)页面应该提供详细信息。
Flutter 插件和 Apple 框架
#用例 | Apple 框架或类 | Flutter 插件 |
---|---|---|
访问照片库 | 使用 Photos 和 PhotosUI 框架以及 UIImagePickerController 的 PhotoKit | 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:1] |
识别语音 | Speech | speech_to_text |
使用增强现实 | ARKit | ar_flutter_plugin |
访问天气数据 | WeatherKit | weather [6] |
访问和管理联系人 | Contacts | contacts_service |
在主屏幕上公开快速操作 | UIApplicationShortcutItem | quick_actions |
在 Spotlight 搜索中索引项目 | CoreSpotlight | flutter_core_spotlight |
配置、更新和与 Widget 通信 | WidgetKit | home_widget |
支持 Android 上的 Google Play 商店和 iOS 上的 Apple App Store。 ↩︎
在 Android 上添加 Google Pay 支付,在 iOS 上添加 Apple Pay 支付。 ↩︎
使用 Firebase Cloud Messaging 并与 APNs 集成。 ↩︎
包括加速度计、陀螺仪等传感器。 ↩︎
使用 Google 的 ML Kit,并支持文本识别、人脸检测、图像标注、地标识别和条形码扫描等各种功能。您还可以使用 Firebase 创建自定义模型。要了解更多信息,请参阅 使用 Flutter 使用自定义 TensorFlow Lite 模型。 ↩︎ ↩︎
使用 OpenWeatherMap API。还存在其他可以从不同天气 API 获取数据的包。 ↩︎
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面上次更新于 2024-08-30。 查看源代码 或 报告问题.