如果您來自 iOS 開發背景,您可能需要尋找提供與 Apple 系統庫相同功能的 Flutter 外掛。這可能包括訪問裝置硬體或與特定框架(如 HealthKit)進行互動。

有關 SwiftUI 框架與 Flutter 之間比較的概述,請參閱 Flutter for SwiftUI developers

介紹 Flutter 外掛

#

Dart 呼叫包含平臺特定程式碼的庫,這些庫稱為外掛("plugin package" 的縮寫)。在開發 Flutter 應用時,您可以使用外掛與系統庫進行互動。

在您的 Dart 程式碼中,您使用外掛的 Dart API 來呼叫正在使用的系統庫的原生程式碼。這意味著您可以編寫呼叫 Dart API 的程式碼。然後,該 API 會使其適用於外掛支援的所有平臺。

要了解有關外掛的更多資訊,請參閱 Using packages。雖然本頁連結了一些流行的外掛,但您可以在 pub.dev 上找到數千種其他外掛以及示例。下表不推薦任何特定外掛。如果您找不到滿足您需求的軟體包,您可以建立自己的軟體包,或者直接在您的專案中使用平臺通道。要了解更多資訊,請檢視 Writing platform-specific code

向專案中新增外掛

#

要在您的原生專案中使用的 Apple 框架,請將其匯入到您的 Swift 或 Objective-C 檔案中。

要新增 Flutter 外掛,請從專案的根目錄執行 flutter pub add package_name。這將把依賴項新增到您的 pubspec.yaml 檔案中。新增依賴項後,在您的 Dart 檔案中為該軟體包新增 import 語句。

您可能需要更改應用設定或初始化邏輯。如果需要,軟體包在 pub.dev 上的“Readme”頁面應該會提供詳細資訊。

Flutter 外掛和 Apple 框架

#
用例Apple 框架或類Flutter 外掛
訪問照片庫PhotoKit,使用 PhotosPhotosUI 框架以及 UIImagePickerControllerimage_picker
訪問相機UIImagePickerController,使用 .camera sourceTypeimage_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 建立自定義模型。要了解更多資訊,請參閱 Use a custom TensorFlow Lite model with Flutter↩︎ ↩︎

  6. 使用 OpenWeatherMap API。還存在其他可以從不同天氣 API 獲取資料的軟體包。↩︎