如何在Android中注册C ++ React Native模块

时间:2018-06-10 07:44:11

标签: java android c++ react-native

我有一个源自facebook::xplat::module::CxxModule的C ++ React Native模块。它适用于iOS项目,但现在我正试图弄清楚如何从Java中使用它。我找到的唯一文档是React Native代码库中的注释:

  

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

我的问题是如何使用CxxModuleWrapper

在Java中注册C ++模块

1 个答案:

答案 0 :(得分:0)

请查看此博客以获取详细信息:https://medium.com/@kudochien/how-to-write-a-react-native-cxxmodule-59073259f15d。 博客的片段:

从本地导出

extern "C" HelloCxxModule* createHelloCxxModule() {
  return new HelloCxxModule();
}

在Java中注册

public final class HelloCxxPackage implements ReactPackage {
  @Override
  public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
    return Arrays.<NativeModule>asList(
        // I have librnpackage-hellocxx.so the exported createHelloCxxModule() above.
        CxxModuleWrapper.makeDso("rnpackage-hellocxx", "createHelloCxxModule")
    );
  }
  @Override
  public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
    return Collections.emptyList();
  }
}