利用 Apple 的系统 API 和框架
如果您来自 iOS 开发,您可能需要找到提供与 Apple 系统库相同功能的 Flutter 插件。这可能包括访问设备硬件或与特定框架(如 HealthKit
或 MapKit
)进行交互。
有关 SwiftUI 框架与 Flutter 的比较概述,请参阅 适用于 SwiftUI 开发人员的 Flutter。
介绍 Flutter 插件
Dart 调用包含特定于平台的代码的库插件。使用 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 上该软件包的“自述文件”页面应提供详细信息。
Flutter 插件和 Apple 框架
用例 | Apple 框架或类 | Flutter 插件 |
---|---|---|
访问照片库 |
PhotoKit 使用 Photos 和 PhotosUI 框架以及 UIImagePickerController
|
image_picker |
访问相机 |
UIImagePickerController 使用 .camera sourceType
|
image_picker |
使用高级相机功能 | AVFoundation |
camera |
提供应用内购买 | StoreKit |
in_app_purchase 1
|
处理付款 | PassKit |
pay 2
|
发送推送通知 | UserNotifications |
firebase_messaging 3
|
访问 GPS 坐标 | CoreLocation |
geolocator |
访问传感器数据4 | CoreMotion |
sensors_plus |
嵌入地图 | MapKit |
google_maps_flutter |
发出网络请求 | URLSession |
http |
存储键值 |
@AppStorage 属性包装器和 NSUserDefaults
|
shared_preferences |
持久化到数据库 |
CoreData 或 SQLite |
sqflite |
访问健康数据 | HealthKit |
health |
使用机器学习 | CoreML |
google_ml_kit 5
|
识别文本 | VisionKit |
google_ml_kit 5
|
识别语音 | Speech |
语音转文本 |
使用增强现实 | ARKit |
ar_flutter_plugin |
访问天气数据 | WeatherKit |
weather 6
|
访问和管理联系人 | 联系人 |
contacts_service |
在主屏幕上显示快速操作 | UIApplicationShortcutItem |
quick_actions |
在 Spotlight 搜索中索引项目 | CoreSpotlight |
flutter_core_spotlight |
配置、更新小组件并与其通信 | WidgetKit |
home_widget |
-
同时支持 Android 上的 Google Play 商店和 iOS 上的 Apple App Store。 ↩
-
在 Android 上添加 Google Pay 支付,在 iOS 上添加 Apple Pay 支付。 ↩
-
使用 Firebase 云消息传递并与 APNs 集成。 ↩
-
包括加速计、陀螺仪等传感器。 ↩
-
使用 Google 的 ML Kit,支持文本识别、人脸检测、图像标记、地标识别和条形码扫描等各种功能。您还可以使用 Firebase 创建自定义模型。要了解详情,请参阅使用 Flutter 和自定义 TensorFlow Lite 模型。 ↩ ↩2
-
使用OpenWeatherMap API。还有其他可以从不同天气 API 中提取数据的软件包。 ↩