首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有类似于RCTBridge React的东西,但对于呢?

是否有类似于RCTBridge React的东西,但对于呢?
EN

Stack Overflow用户
提问于 2016-02-19 17:01:09
回答 1查看 1.7K关注 0票数 3

在我工作的地方,我们试图以一种稍微不标准的方式使用react本机。我们不想将它用于视图,而是使用它来运行Java代码,从而允许我们分别使用java、Swift/Objective和Javascript在js和前端为Android iOS和Web创建所有业务逻辑。

我们在iOS中做了这样的事情:

代码语言:javascript
复制
NSURL *bundleURL = ...;
RCTBridgeModuleProviderBlock block = nil;
NSDictionary *launchOptions = nil;
RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:bundleURL moduleProvider:block launchOptions:nil];

我们的iOS开发人员能够创建一个RCTBridge,然后使用它与objective中的JS代码进行通信。他正计划在这个应用程序的生命中保持这座桥。我在Android/Java上找不到类似的东西。我确实让ReactInstanceManager做了如下工作:

代码语言:javascript
复制
mReactInstanceManager = ReactInstanceManager.builder()
                .setApplication(getApplication())
                .setBundleAssetName("index.android.bundle")
                .setJSMainModuleName("index.android")
                .addPackage(new MainReactPackage())
                .addPackage( searchPackage )
                .setUseDeveloperSupport( BuildConfig.DEBUG )
                .setInitialLifecycleState( LifecycleState.RESUMED)
                .build();

        mReactInstanceManager.createReactContextInBackground();

与ReactInstanceManager连接的恼人之处在于,它需要一些生命周期回调,这使得它与特定的活动绑定在一起。我想做iOS正在做的事情,创建一个桥梁,并在多个不同的活动中为整个应用程序保留这个实例。

那么,在RCTBridge中是否存在类似于iOS的东西呢?如果没有,那么我为什么不应该在多个活动中共享相同的reactInstanceManager呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-12 13:40:48

文档状态您可以将ReactInstanceManager保持为单例,并在多个活动中使用它,只要将它连接到活动生命周期方法。

不过,我发现这种方法有一个问题。在Android上,如果您的活动扩展了基本的ReactNative活动,那么当调用onDestroy()时,ReactInstanceManager将获得被毁。因此,如果您从您的MainActivity中打开第二个活动--一旦返回到您的MainActivitymReactInstanceManager将无效,您的单例基本上毫无价值。

关于这件事,我打开了一个问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35510712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档