呼叫 JetPack API
在 Android 上執行的 Flutter 應用程式,無論如何都能在 Android 發布的第一天就使用最新的 API。此頁面概述了呼叫 Android 特定 API 的可用方法。
使用現有的解決方案
#在大多數情況下,您可以使用外掛程式(如下一節所示)來呼叫原生 API,而無需自行編寫任何自訂的樣板或膠水程式碼。
使用外掛程式
#無論您的 Flutter 應用程式在哪裡執行,使用外掛程式通常都是存取原生 API 最簡單的方法。若要使用外掛程式,請造訪 pub.dev 並搜尋您需要的主題。大多數原生功能,包括存取 GPS、相機或計步器等常見硬體,都受到健全的外掛程式支援。
如需將外掛程式新增至 Flutter 應用程式的完整指南,請參閱使用套件文件。
並非所有原生功能都受外掛程式支援,尤其是在發布後立即支援。在任何情況下,如果您的所需原生功能未在 pub.dev 上的套件涵蓋,請繼續閱讀以下各節。
建立自訂解決方案
#並非所有情境和 API 都會受現有解決方案支援;但幸運的是,您隨時可以新增所需的任何支援。以下各節描述了從 Dart 呼叫原生程式碼的兩種不同方法。
透過 FFI 直接呼叫原生程式碼
#呼叫原生 API 最直接且有效率的方式,是透過 FFI 直接呼叫 API。這會將您的 Dart 可執行檔在編譯時連結至任何指定的原生程式碼,讓您可以透過少量的膠水程式碼從 UI 執行緒直接呼叫它。在大多數情況下,ffigen 或 jnigen 有助於編寫此膠水程式碼。
如需從 Flutter 應用程式直接呼叫原生程式碼的完整指南,請參閱FFI 文件。
在未來幾個月內,Dart 團隊希望透過直接支援使用 FFI 方法呼叫原生 API 來簡化此過程,而無需開發人員編寫任何膠水程式碼。
新增一個 MethodChannel
#MethodChannel
是 Flutter 應用程式可以呼叫任意原生程式碼的另一種方法。與前一步驟中描述的 FFI 解決方案不同,MethodChannel 始終是異步的,這可能對您有影響,也可能沒有,取決於您的使用案例。與 FFI 和直接呼叫原生程式碼一樣,使用 MethodChannel
需要少量膠水程式碼,才能將您的 Dart 物件轉換為原生物件,然後再轉換回來。在大多數情況下,pkg:pigeon
有助於編寫此膠水程式碼。
如需將 MethodChannel 新增至 Flutter 應用程式的完整指南,請參閱 MethodChannel
文件。
除非另有說明,否則本網站上的文件反映了 Flutter 的最新穩定版本。頁面上次更新於 2024-11-08。 檢視原始碼 或 回報問題。