在使用原生模块时,可以在现有原生应用程序中使用它们,而无需创建新模块:
有两种方法可以为React Native应用程序编写本机模块:
1.直接在您的React Native应用的iOS/Android项目中
1.作为NPM软件包,可由您的/其他React Native应用程序(https://reactnative.dev/docs/native-modules-intro)作为依赖项安装
对于Turbo模块,documentation中根本没有提到此选项。我知道Turbo模块是非常先进的,但是有没有可能直接在原生应用程序中使用Turbo模块,就像原生模块一样?我更喜欢一个仍然可以与CodeGen一起工作的解决方案(如果有的话)。
我为什么想要这个?我正在尝试将React Native集成到我现有的iOS和Android应用程序(布朗菲尔德)中。通过直接在原生应用程序中使用原生模块,我可以轻松地访问旧的实现/数据,而不必将它们移植到独立的模块中。
我试着将<ModuleName>Spec.java
的实现移到我现有的android应用中,但这样一来,扩展TurboReactPackage
的类就无法在调用getModule
时返回新示例。
编辑:我让它工作了。如果你想知道怎么做的话,请看我的命令。
1条答案
按热度按时间2lpgd9681#
通过做一些修改,我发现,我可以只遵循文档,但在现有的react native项目中做所有事情。但是我必须提供我自己的
OnLoad.cpp
和CMakeLists.txt。这可以通过遵循React Native Turbo Modules的c++
-Documentation来完成。