Vor kurzem fand ich heraus, wie die jsBundle URL in AppDelegate.swift in iOS ändern, so kann ich meine eigene jsBundle herunterladen und diese verwenden, wenn die Anwendung startet:React-native jsbundle von benutzerdefinierter URL in Android
bundleLocation = URL(string: "http://www.example.com/myJsBundle.js")!
let rootView = RCTRootView(bundleURL: bundleLocation, moduleName: "ReactApp", initialProperties: nil, launchOptions:launchOptions)
self.bridge = rootView?.bridge
self.window = UIWindow(frame: UIScreen.main.bounds)
let rootViewController = UIViewController()
rootViewController.view = rootView
self.window!.rootViewController = rootViewController;
self.window!.makeKeyAndVisible()
return true
wenn ich will jetzt das gleiche in einem Android-Projekt tun ich öffne die MainApplication.java Datei und sehen diesen Code: ist
public class MainApplication extends Application implements ReactApplication {
private 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
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
Meine Frage ist nun, wo und wie kann ich eine benutzerdefinierte URL für die jsBundle in Android definieren ?
Mein Testpaket befindet sich derzeit im Ordner "Assets". Also versuchte ich die URL: file: ///android_asset/index.android.bundle. Aber das erzeugt den Fehler: Keine solche Datei oder Verzeichnis. Irgendwelche Ideen, die der richtige Weg sein werden? – ManzMoody
Wenn Sie Ihr Bundle zum Ordner "Assets" mit dem Namen "index.android.bundle" hinzufügen, ist dies der Standardspeicherort. Ich würde dann 'getJSBundleFile' nicht überschreiben und false in der Methode' getUseDeveloperSupport' oder Build 'release' zurückgeben. – Stewart