跳到主內容

利用 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 拉取資料的其他軟體包。