跳到主内容

利用 Apple 的系统 API 和框架

了解提供与 Apple 框架等效功能的 Flutter 插件。

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

有关 SwiftUI 框架与 Flutter 的比较概览,请参阅 Flutter for SwiftUI developers

介绍 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 语句以导入该软件包。

您可能需要更改应用程序设置或初始化逻辑。如果需要,软件包的“Readme”页面在 pub.dev 上应提供详细信息。

Flutter 插件和 Apple 框架

#
用例Apple 框架或类Flutter 插件
访问照片库 PhotoKit 使用 PhotosPhotosUI 框架以及 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
发起网络请求 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
  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 创建自定义模型。要了解更多信息,请参阅 使用自定义 TensorFlow Lite 模型 2

  6. 使用 OpenWeatherMap API。 存在可以从不同天气 API 拉取数据的其他软件包。