ReactNative公开C++本机模块

ReactNative expose C++ native module

本文关键字:模块 本机 C++ 公开 ReactNative      更新时间:2023-10-16

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

是否可以将纯用C++编写的本机模块公开为反应本机模块?我们不想在原生语言(Java或Objective-C)中围绕C++代码创建包装器。这样的包装器将增加更多的复杂性,这将使调试和调查更加困难。

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

最后要解决的问题是如何在C++中注册该模块。在React Native Android的JNI中,NativeModule的实现表明

实现是用C++编写的NativeModule不得提供任何Java代码(这样它们就可以在其他平台上重用)应使用CCD_ 4进行自身注册。

那么CxxModuleWrapper的实现说明

除了避免破坏现有代码之外,这并没有什么有趣的事情。

所以,这可能会帮助你开始。最后要解决的问题是如何注册CxxNativeModule,以便在JS中使用。

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

以下是一个链接,建议如何做到这一点:如何使用预处理器指令检查操作系统?