2015-12-30 54 views
4

我們有很多用跨平臺C++編寫的業務邏輯。我們希望爲我們的應用程序編寫跨平臺UI,並使用此業務邏輯創建整個跨平臺應用程序。ReactNative公開C++本地模塊

是否有可能公開本機模塊純粹用C++編寫的react-native? 我們不想在本地語言(Java或Objective-C)中圍繞C++代碼創建包裝。這樣的包裝會增加更多的複雜性,這會使調試和調查變得更加困難。

+0

「本地語言(Java或Objective-C)」至少Java不是本地語言 –

+0

這樣的東西? https://facebook.github.io/react-native/docs/native-modules-ios.html – Marged

+0

沒有在鏈接中的解釋向您展示如何編寫Objective-C代碼以在JS中公開它。我想要純粹的C++代碼暴露給JS。 – vkudelas

回答

0

看起來您似乎需要查找與操作系統相關的代碼,併爲不同的操作系統編寫此代碼的不同版本。

下面是這表明這是如何做到的鏈接: How do I check OS with a preprocessor directive?

+0

Timothy我正在尋找一種方法,無需編寫特定於平臺的代碼(Objective-C/Java),就可以將C++公開給JS的react-native。 – vkudelas

3

我也在尋找一種方式來在C++中直接做沒有Android和對象 - 針對iOS編寫JNI。我在反應本機來源找到了CxxNativeModule類。請參閱示例實施SampleCxxModule

最後要弄清楚的是如何在C++中註冊該模塊。在JNI的陣營原生的Android,實施NativeModule

NativeModule(胡)的實現是用C++不能提供 任何Java代碼(這樣他們就可以在其他平臺上重複使用),而是 應自行註冊使用CxxModuleWrapper

然後執行CxxModuleWrapper

這確實沒有什麼有趣的,除了避免破壞現有的代碼。

所以,這可能會幫助您開始。最後要弄清楚的是如何註冊一個CxxNativeModule,以便它可以在JS中使用。

+0

我很感興趣的是如何以這種方式將C++模塊集成到React Native中。有關該主題的更多文檔或文章? – Adamski