在我工作的地方,我们试图以一种稍微不标准的方式使用react本机。我们不想将它用于视图,而是使用它来运行Java代码,从而允许我们分别使用java、Swift/Objective和Javascript在js和前端为Android iOS和Web创建所有业务逻辑。
我们在iOS中做了这样的事情:
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做了如下工作:
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呢?
发布于 2016-03-12 13:40:48
https://stackoverflow.com/questions/35510712
复制相似问题