利用 Apple 的系统 API 和框架

如果您来自 iOS 开发,您可能需要找到提供与 Apple 系统库相同功能的 Flutter 插件。这可能包括访问设备硬件或与特定框架(如 HealthKitMapKit)进行交互。

有关 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使用 PhotosPhotosUI 框架以及 UIImagePickerController image_picker
访问相机 UIImagePickerController 使用 .camera sourceType image_picker
使用高级相机功能 AVFoundation camera
提供应用内购买 StoreKit in_app_purchase1
处理付款 PassKit pay2
发送推送通知 UserNotifications firebase_messaging3
访问 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_kit5
识别文本 VisionKit google_ml_kit5
识别语音 Speech 语音转文本
使用增强现实 ARKit ar_flutter_plugin
访问天气数据 WeatherKit weather6
访问和管理联系人 联系人 contacts_service
在主屏幕上显示快速操作 UIApplicationShortcutItem quick_actions
在 Spotlight 搜索中索引项目 CoreSpotlight flutter_core_spotlight
配置、更新小组件并与其通信 WidgetKit home_widget
  1. 同时支持 Android 上的 Google Play 商店和 iOS 上的 Apple App Store。 

  2. 在 Android 上添加 Google Pay 支付,在 iOS 上添加 Apple Pay 支付。 

  3. 使用 Firebase 云消息传递并与 APNs 集成。 

  4. 包括加速计、陀螺仪等传感器。 

  5. 使用 Google 的 ML Kit,支持文本识别、人脸检测、图像标记、地标识别和条形码扫描等各种功能。您还可以使用 Firebase 创建自定义模型。要了解详情,请参阅使用 Flutter 和自定义 TensorFlow Lite 模型。  2

  6. 使用OpenWeatherMap API。还有其他可以从不同天气 API 中提取数据的软件包。