Mic*_*l T 5 android react-native
对于我的Android应用程序,我需要能够在运行时动态更新Bundle并使用我的Assets中预先保存的bundle作为后备.我在官方文档中未能找到任何相关信息.
在本机的iOS版本中,有一种方法可以指定从中加载JS包的URL,但我还没有看到Android的等效选项.这对Android有什么用?
更新 看起来RN团队一直在研究这个功能,并将成为下一个版本的一部分:https: //github.com/facebook/react-native/commit/3a743ef228a14e07c77c5488b080413643ec9c4b
小智 5
1.下载捆绑文件并管理路径。
2.在您的应用程序中新建一个ReactNativeHost:
public String mBundleFilePath = "";
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.asList(new MainReactPackage(), new MyReactPackage());
}
@Override
protected String getJSBundleFile() {
return mBundleFilePath;
}
};
Run Code Online (Sandbox Code Playgroud)
3.在启动ReactActivity之前,将ur捆绑文件的路径分配给变量:mBundleFilePath。
public class ReactNativeActivity extends ReactActivity {
public static void launchSelf(...) {
MyApplication.getInstance().mBundleFilePath = path;
COMPONENT_NAME = ...;
Intent intent = new Intent(activity,ReactNativeActivity.class);
activity.startActivity(..);
}
...
}
Run Code Online (Sandbox Code Playgroud)
源代码:
com.facebook.react.ReactNativeHost#createReactInstanceManager
com.facebook.react.ReactInstanceManager.Builder#setJSBundleFile
com.facebook.react.cxxbridge.JSBundleLoader#createFileLoader
Run Code Online (Sandbox Code Playgroud)
...
可以帮助你:)
归档时间: |
|
查看次数: |
2224 次 |
最近记录: |