我想开发一个React Native应用。但是js文件不在我的本地计算机上。我将从远程服务器下载捆绑软件。
下面的代码现在可以使用。但是如何从文件路径重新加载js包?
public class MainApplication extends Application implements ReactApplication {
public static String mBundleFilePath = "sdcard/Download/index.android.bundle";
public final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage()
);
}
@Override
protected String getJSMainModuleName() {
return "index";
}
@Override
protected String getJSBundleFile() {
return mBundleFilePath;
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
有一些重新加载的方法。但是它不支持外部路径。 reloadJSFromServer仅适用于http / https。
getReactNativeHost().getReactInstanceManager().getDevSupportManager().reloadJSFromServer(httpUrl);
handleReloadJS从localhost / 8081加载
getReactNativeHost().getReactInstanceManager().getDevSupportManager().handleReloadJS();
编辑
重启活动对我不起作用:)
Intent myIntent = new Intent(getApplicationContext(), MainActivity.class);
finish();
startActivity(myIntent);
答案 0 :(得分:0)
使用以下代码
ReactInstanceManager manager = application.getReactNativeHost().getReactInstanceManager();
manager.recreateReactContextInBackground();