ReactNative公开C ++本机模块

时间:2015-12-30 08:34:12

标签: c++ react-native

我们有很多用跨平台C ++编写的业务逻辑。我们希望为我们的应用程序编写跨平台UI,并使用此业务逻辑创建整个跨平台应用程序。

是否有可能将纯粹用C ++编写的本机模块暴露给react-native? 我们不想用本地语言(Java或Objective-C)创建围绕C ++代码的包装器。这样的包装器会增加复杂性,使调试和调查变得更加困难。

2 个答案:

答案 0 :(得分:3)

我也在寻找一种直接在C ++中执行此操作的方法,而无需编写适用于Android的JNI和适用于iOS的Obj-C。我在react本机源中找到了CxxNativeModule类。请参阅示例实现SampleCxxModule

最后要弄清楚的是如何在C ++中注册该模块。在JNI for React Native Android中,NativeModule的实现说

  

NativeModule的实现是用C ++编写的,不能提供   任何Java代码(因此可以在其他平台上重用),而不是   应该使用CxxModuleWrapper注册自己。

然后CxxModuleWrapper的实施说

  

除了避免破坏现有代码外,这没有任何意义。

所以,这可能会帮助您入门。最后要弄清楚的是如何注册CxxNativeModule以便它可以在JS中使用。

答案 1 :(得分:0)

好像你需要找到与os相关的代码,并为不同的操作系统编写不同版本的代码。

这是一个链接,建议如何做到这一点: How do I check OS with a preprocessor directive?