2015-12-30 52 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