2016-07-22 43 views
2

我想將基於React Native的模塊集成到我現有的Android應用程序中。這工作相當不錯,但我也想整合CodePush部署更新到我的應用程序。如何在一個應用程序中對CodePush使用多個ReactNativeHosts?

重要的一點是模塊應該獨立於特定的應用程序,因爲我有多個不同的應用程序應該使用這些模塊。所以模塊本身是獨立的React Native軟件包,所以它們必須是獨立的Code-Push應用程序(我猜)。

目前這樣一個陣營本機模塊(如片段中實現)的工作是這樣的:

public class ReactFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { 
     ReactRootView mReactRootView = new ReactRootView(getContext()); 
     ReactInstanceManager mReactInstanceManager = ReactInstanceManager.builder() 
       .setApplication(getActivity().getApplication()) 
       .setBundleAssetName("index.android.bundle") 
       .setJSMainModuleName("index.android") 
       .addPackage(new MainReactPackage()) 
       .setUseDeveloperSupport(false) 
       .setInitialLifecycleState(LifecycleState.RESUMED) 
       .build(); 
     mReactRootView.startReactApplication(mReactInstanceManager, "HelloWorld", null); 
     return mReactRootView; 
    } 
} 

因此,按照official CodePush guide我不知道如何在同一臺Android應用程序中使用多個CodePush項目。不過,我認爲我的onCreateView內必須有一些東西允許我注入CodePush包或至少定製ReactNativeHost

回答

3

這是一個有趣的場景,React Native CodePush SDK不支持(尚未),但沒有自定義代碼來修改它。具體來說,我們需要一種將CodePush提供的lupdates保存在不同位置的每個ReactNativeHost的方法。現在,它是一個硬編碼位置https://github.com/Microsoft/react-native-code-push/blob/master/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateManager.java#L40。雖然它在我們的待辦事項中,但這種情況可能沒有得到太快的優先順序,但它看起來也可能不是很難做出改變,所以如果你想深入研究代碼並自己做出改變,隨時可以發出拉請求。否則,您也可以在我們的回購中提出增強問題,以便我們可以跟蹤它。感謝您的反饋!

相關問題