gpt4 book ai didi

android - 如何在一个应用程序中使用多个 ReactNativeHosts 进行 CodePush?

转载 作者:行者123 更新时间:2023-12-02 17:20:06 28 4
gpt4 key购买 nike

我想将基于 React Native 的模块集成到我现有的 Android 应用程序中。到目前为止,这工作得很好,但我也想集成 CodePush将更新部署到我的应用程序。

重要的一点是,模块应该独立于特定的应用程序,因为我有多个不同的应用程序应该使用这些模块。因此,模块本身是独立的 React Native 包,因此它们必须是单独的 Code-Push 应用程序(我猜)。

目前这样的 React Native 模块(作为 Fragment 实现)的工作原理如下:

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 中一定有一些东西允许我注入(inject) CodePush 包或至少是一个自定义的 ReactNativeHost

最佳答案

这是一个有趣的场景,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 。虽然它在我们的待办事项中,但这种情况可能不会很快得到优先级,但看起来做出更改也不是太难,所以如果您想深入研究代码并自己进行更改,请随时发出拉取请求。否则,您也可以在我们的存储库上提交增强问题,以便我们可以跟踪它。感谢您的反馈!

关于android - 如何在一个应用程序中使用多个 ReactNativeHosts 进行 CodePush?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38529114/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com