利用 Apple 的系統 API 和框架
瞭解提供與 Apple 框架等效功能的 Flutter 外掛。
如果你有 iOS 開發背景,可能需要找到與 Apple 系統庫功能相同的 Flutter 外掛。這可能包括訪問裝置硬體或與特定的框架(如 HealthKit)進行互動。
有關 SwiftUI 框架與 Flutter 對比的概覽,請參閱 面向 SwiftUI 開發者的 Flutter 開發指南。
Flutter 外掛介紹
#Dart 將包含平臺特定程式碼的庫稱為 *外掛 (plugins)*,它是“外掛包”的縮寫。在使用 Flutter 開發應用時,你使用 *外掛* 與系統庫進行互動。
在你的 Dart 程式碼中,你使用外掛的 Dart API 來呼叫所使用系統庫的原生代碼。這意味著你可以編寫程式碼來呼叫 Dart API。然後,該 API 會使其在外掛支援的所有平臺上都能正常工作。
要了解關於外掛的更多資訊,請參閱 使用包。儘管此頁面連結了一些流行的外掛,但你可以在 pub.dev 上找到成千上萬個其他外掛及其示例。下表並不認可任何特定外掛。如果你找不到滿足你需求的包,可以建立自己的包,或者在專案中直接使用平臺通道 (platform channels)。要了解更多資訊,請參閱 編寫平臺特定程式碼。
將外掛新增到你的專案中
#要在原生專案中使用 Apple 框架,請將其匯入到你的 Swift 或 Objective-C 檔案中。
要新增 Flutter 外掛,請在專案根目錄下執行 flutter pub add package_name。這會將依賴項新增到你的 pubspec.yaml 檔案中。新增依賴項後,在你的 Dart 檔案中為該包新增一個 import 語句。
你可能需要更改應用設定或初始化邏輯。如果需要,請查閱該包在 pub.dev 上的“Readme”頁面以獲取詳細資訊。
Flutter 外掛與 Apple 框架
#| 用例 | Apple 框架或類 | Flutter 外掛 |
|---|---|---|
| 訪問照片庫 |
使用 Photos 和 PhotosUI 框架的 PhotoKit 以及 UIImagePickerController |
image_picker |
| 訪問攝像頭 | 使用 .camera sourceType 的 UIImagePickerController |
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 |
-
同時支援 Android 上的 Google Play 商店和 iOS 上的 Apple App Store。↩
-
在 Android 上新增 Google Pay 支付,在 iOS 上新增 Apple Pay 支付。↩
-
使用 Firebase Cloud Messaging 並與 APNs 整合。↩
-
包含加速度計、陀螺儀等感測器。↩
-
使用 Google 的 ML Kit,支援文字識別、人臉檢測、影像標註、地標識別和條形碼掃描等多種功能。你還可以透過 Firebase 建立自定義模型。要了解更多資訊,請參閱 在 Flutter 中使用自定義 TensorFlow Lite 模型。↩ ↩2
-
使用 OpenWeatherMap API。還有其他可以從不同天氣 API 獲取資料的包存在。↩