gpt4 book ai didi

android - 来自 Android 中自定义 URL 的 React-native jsbundle

转载 作者:行者123 更新时间:2023-11-28 12:27:34 31 4
gpt4 key购买 nike

我最近发现了如何在 iOS 中更改 AppDelegate.swift 中的 jsBundle URL,这样我就可以下载我自己的 jsBundle 并在应用程序启动时使用它:

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

当我现在想在 Android 项目中做同样的事情时,我打开 MainApplication.java 文件并看到这段代码:

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);
}
}

我现在的问题是,我可以在哪里以及如何为 Android 中的 jsBundle 定义自定义 URL?

最佳答案

这取决于预期用途是用于调试还是用于生产:

调试

参见 connecting-to-the-development-server关于如何为 android 切换 urlport

制作

据我所知,您需要先下载包,然后在 ReactNativeHost 实例上使用覆盖方法 getJSBundleFile(根据提供的代码 fragment 创建问题)

@Override
protected String getJSBundleFile() {
return pathToBundleFileDownloaded; // change this
}

如果预期用途是用于生产,我建议查看一些提供此类功能的库。 CodePush是一个很好的例子,而且是免费的。

关于android - 来自 Android 中自定义 URL 的 React-native jsbundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42921555/

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