ReactNative公开C++本机模块

vku*_*las 5 c++ react-native

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

是否有可能将纯粹用C++编写的本机模块暴露给本机反应?我们不希望用本机语言(Java或Objective-C)创建C++代码包装器.这样的包装器将增加更多的复杂性,这将使调试和调查更加困难.

Tyl*_*man 5

我也在寻找一种直接在 C++ 中执行此操作的方法,而无需为 Android 编写 JNI 和为 iOS 编写 Obj-C。CxxNativeModule我在反应原生源中找到了该类。请参阅示例实现SampleCxxModule

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

NativeModule其实现是用 C++ 编写的,不得提供任何 Java 代码(以便它们可以在其他平台上重用),而应该使用CxxModuleWrapper.

然后执行CxxModuleWrapper

除了避免破坏现有代码之外,这没有任何有趣的作用。

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

  • 我对如何以这种方式将 C++ 模块集成到 React Native 中很感兴趣。还有关于该主题的更多文档或文章吗? (2认同)

小智 1

似乎您需要找到依赖于操作系统的代码,并为不同的操作系统编写该代码的不同版本。

这是一个建议如何完成此操作的链接: How do I check OS with a preprocessordirective?