2016-07-22 3 views
2

React Native 기반 모듈을 기존 Android 애플리케이션에 통합하려고합니다. 지금까지 꽤 잘 작동하지만 내 응용 프로그램에 업데이트를 배포하기 위해 CodePush을 통합하려고합니다.하나의 응용 프로그램 내에서 CodePush에 대해 여러 ReactNativeHosts를 사용하는 방법은 무엇입니까?

중요한 점은 해당 모듈을 사용해야하는 여러 응용 프로그램이 있기 때문에 모듈이 특정 응용 프로그램과 독립적이어야한다는 것입니다. 따라서 모듈 자체는 독립적 인 React Native 패키지이므로 별도의 Code-Push 응용 프로그램이어야합니다 (필자는 추측합니다).

현재와 같은 (A 조각으로 구현) 기본 모듈과 같이 작동하고 반작용 :

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; 
    } 
} 

그래서 내가 어떻게 같은 안드로이드 응용 프로그램 내에서 여러 CodePush 프로젝트를 사용하는 아무 생각이없는 official CodePush guide 다음. 그러나 나는 내 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입니다. 우리의 백 로그에 있지만,이 시나리오는 너무 빨리 우선 순위를 매길 수는 없지만 변경하기가 그리 어렵지는 않을 것 같습니다. 따라서 코드를 탐구하고 직접 변경하려는 경우 자유롭게 끌어 오기 요청을 보냅니다. 그렇지 않으면 추적 할 수 있도록 Google Repo에 개선 문제를 제출할 수도 있습니다. 의견을 보내 주셔서 감사합니다!