[英]Integrating React-Native to an existing App
我想將本機模塊集成到現有的iOS App中,但將兩種解決方案分開保存。 與其執行修改現有解決方案的https://facebook.github.io/react-native/docs/integration-with-existing-apps.html ,而是我想有一個獨立的react-native解決方案並以某種方式導入react-native應用程序的Xcode項目到我現有的應用程序中。 這使我可以繼續開發已經存在的應用程序,而不受RN解決方案的影響,該解決方案安裝並向Xcode項目添加了庫。 基本上,概念是將本機解決方案導出為捆綁包或靜態庫,並將其導入到我現有的iOS App中。 之后,通過現有的iOS App與該庫進行交互,並允許React-Native Solution庫與現有的App進行交互。 應該有一種方法可以從現有的應用程序與RN解決方案庫進行通信,也可以從RN解決方案庫與已有的進行通信(即,從現有的iOS應用程序以及從RN解決方案啟動模塊能夠啟動視圖)的現有應用程序)這可能嗎?
您可以做您要引用的大多數事情。 打擾一下,請問...
Runninig獨立
如果您的RN目錄中沒有ios和android文件夾,則必須從CLI運行react-native eject
。
可以使用以下CLI命令將React-native應用程序作為獨立的本機應用程序啟動:
react-native run-ios
(僅在MacOS上)
react-native run-android
如果使用默認--port ####
添加--port ####
。
這兩個命令都將啟動類似於沙盒本機應用程序的程序,該程序將在其中加載JS。 它還將啟動Metro捆綁器,該捆綁器也將服務於js捆綁包。
將RN加載到現有應用中
您需要添加Android和iOS的本機 RN庫作為依賴項,因此您可以使用它們從Dev服務器加載JS捆綁包或將JS捆綁包插入本機內部版本。
要使用開發服務器,請運行react-native start
。
要將JS構建為將添加到本機包的文件,必須運行:
react-native bundle ios
后跟幾個選項
--dev false
或正確
--entry-file index.ios.js
更改它以匹配您的輸入文件。 可能只是index.js。 請小心匹配Java / Obj-C代碼中的名稱。
--bundle-output ../YOUR-EXISTING-IOS-APP/main.jsbundle
--assets-dest ../YOUR-EXISTING-IOS-APP
通訊
這發生在RCTBridge上 。
查看此頁面以獲取解釋和示例,以及如何從RN環境訪問本機功能的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.