![](/img/trans.png)
[英]react-native reload js programmatically on android native
[英]React native reload bundle programmatically
我想開發一個反應本機應用程序。 但是js文件不在我的本地機器上。 我將從遠程服務器下載捆綁包。
下面的代碼現在適用。 但是如何從文件路徑重新加載js bundle?
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);
使用以下代碼
ReactInstanceManager manager = application.getReactNativeHost().getReactInstanceManager();
manager.recreateReactContextInBackground();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.