Skip to main content

利用 Apple 的系统 API 和框架

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

有关 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 插件
访问照片库使用 PhotosPhotosUI 框架以及 UIImagePickerControllerPhotoKitimage_picker
访问相机使用 .camera sourceTypeUIImagePickerControllerimage_picker
使用高级相机功能AVFoundationcamera
提供应用内购买StoreKitin_app_purchase[1]
处理支付PassKitpay[2]
发送推送通知UserNotificationsfirebase_messaging[3]
访问 GPS 坐标CoreLocationgeolocator
访问传感器数据[4]CoreMotionsensors_plus
发出网络请求URLSessionhttp
存储键值对@AppStorage 属性包装器和 NSUserDefaultsshared_preferences
持久保存到数据库CoreData 或 SQLitesqflite
访问健康数据HealthKithealth
使用机器学习CoreMLgoogle_ml_kit[5]
识别文本VisionKitgoogle_ml_kit[5:1]
识别语音Speechspeech_to_text
使用增强现实ARKitar_flutter_plugin
访问天气数据WeatherKitweather[6]
访问和管理联系人Contactscontacts_service
在主屏幕上显示快速操作UIApplicationShortcutItemquick_actions
在 Spotlight 搜索中索引项目CoreSpotlightflutter_core_spotlight
配置、更新和与 Widget 通信WidgetKithome_widget

  1. 支持 Android 上的 Google Play 商店和 iOS 上的 Apple App Store。 ↩︎

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

  3. 使用 Firebase Cloud Messaging 并与 APNs 集成。 ↩︎

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

  5. 使用 Google 的 ML Kit 并支持各种功能,例如文本识别、面部检测、图像标记、地标识别和条形码扫描。您还可以使用 Firebase 创建自定义模型。要了解更多信息,请参阅使用 Flutter 的自定义 TensorFlow Lite 模型↩︎ ↩︎

  6. 使用OpenWeatherMap API。还存在其他包可以从不同的天气 API 获取数据。 ↩︎