原生模組簡介
原生模組和原生組件是我們的穩定技術,舊版架構使用它們。當新架構穩定後,它們將在未來被棄用。新架構使用 Turbo 原生模組 和 Fabric 原生組件 來達到類似的結果。
有時 React Native 應用程式需要存取 JavaScript 中預設不可用的原生平台 API,例如用於存取 Apple Pay 或 Google Pay 的原生 API。 也許您想重複使用一些現有的 Objective-C、Swift、Java 或 C++ 函式庫,而無需在 JavaScript 中重新實作,或者為影像處理之類的事情編寫一些高效能、多執行緒的程式碼。
NativeModule 系統將 Java/Objective-C/C++(原生)類別的實例作為 JS 物件公開給 JavaScript (JS),從而允許您從 JS 內部執行任意原生程式碼。 雖然我們不期望此功能成為一般開發流程的一部分,但它的存在至關重要。 如果 React Native 沒有匯出您的 JS 應用程式所需的原生 API,您應該能夠自行匯出!
原生模組設定
有多種方法可以為您的 React Native 應用程式編寫原生模組
- 建立可以匯入到您的 React Native 應用程式中的本地函式庫。 閱讀建立本地函式庫指南以瞭解更多資訊。
- 直接在您的 React Native 應用程式的 iOS/Android 專案中
- 作為一個 NPM 套件,可以由您/其他 React Native 應用程式安裝為依賴項。
本指南將首先引導您直接在 React Native 應用程式中實作原生模組。 但是,您在以下指南中建立的原生模組可以作為 NPM 套件發佈。 如果您有興趣這樣做,請查看將原生模組設定為 NPM 套件指南。
開始使用
在以下章節中,我們將引導您完成關於如何在 React Native 應用程式中直接建立原生模組的指南。 作為先決條件,您需要一個 React Native 應用程式才能在其中工作。 如果您還沒有 React Native 應用程式,您可以按照這裡的步驟進行設定。
假設您想從 React Native 應用程式內的 JavaScript 存取 iOS/Android 原生日曆 API,以便建立日曆事件。 React Native 沒有公開 JavaScript API 來與原生日曆函式庫通訊。 但是,透過原生模組,您可以編寫與原生日曆 API 通訊的原生程式碼。 然後,您可以透過 React Native 應用程式中的 JavaScript 呼叫該原生程式碼。