2017-07-26 82 views
1

Integration with existing apps顯示集成陣營原生成exsting應用

RCTRootView *rootView = 
    [[RCTRootView alloc] initWithBundleURL: jsCodeLocation 
           moduleName: @"RNHighScores" 
         initialProperties: nil 
          launchOptions: nil]; 
UIViewController *vc = [[UIViewController alloc] init]; 
vc.view = rootView; 
[self presentViewController:vc animated:YES completion:nil]; 

這是你構造從所述呈現視圖控制器RN視圖,而不是在所呈現的視圖控制器。

對於android,doc顯示了一種從呈現的(創建的)活動創建ReactRootView的方法。

public class MyReactActivity extends Activity implements DefaultHardwareBackBtnHandler { 
    private ReactRootView mReactRootView; 
    private ReactInstanceManager mReactInstanceManager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     mReactRootView = new ReactRootView(this); 
     mReactInstanceManager = ReactInstanceManager.builder() 
       .setApplication(getApplication()) 
       .setBundleAssetName("index.android.bundle") 
       .setJSMainModuleName("index.android") 
       .addPackage(new MainReactPackage()) 
       .setUseDeveloperSupport(BuildConfig.DEBUG) 
       .setInitialLifecycleState(LifecycleState.RESUMED) 
       .build(); 
     mReactRootView.startReactApplication(mReactInstanceManager, "HelloWorld", null); 

     setContentView(mReactRootView); 
    } 

} 

iOS應用程序可以做類似上面的android代碼嗎?這是創建一個自定義視圖控制器,並在viewDidLoad中實例化RCTRootView。
這樣做有什麼缺點嗎?

回答

0

是的,它工作。雖然我不知道是否有任何缺點。