首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用远程主机的包加载用于Android的ReactNativeHost

使用远程主机的包加载用于Android的ReactNativeHost
EN

Stack Overflow用户
提问于 2018-03-10 01:09:59
回答 2查看 1.2K关注 0票数 3

我已经预编好了我的react本机包,并将它上传到我的服务器(假url):

http://my-bundle-server.com/index.android.bundle.js

对于iOS,我可以使用这个位置创建一个视图,它运行得很好:

代码语言:javascript
运行
复制
 jsCodeLocation = "http://my-bundle-server.com/index.android.bundle.js";
 RCTRootView *rootView = [[RCTRootView alloc]
     initWithBundleURL:jsCodeLocation                                                      
     moduleName:@"MyCoolComponent"
     initialProperties:nil                                                  
     launchOptions:launchOptions];

有了Android,情况就不一样了,我找不到一种方法来定义远程捆绑的路径。我找到了ReactNativeHost的文档,并试图设置getJSBundleFile,但它给了我“不能加载文件‘http://....js’的能力”:

https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java

返回包文件的自定义路径。这是在包应该从自定义路径加载的情况下使用的。默认情况下,它是从Android资产,从{@link getBundleAssetName}指定的路径加载的。例如"file://sdcard/myapp_cache/index.android.bundle“

它似乎不适用于偏远地区。值得一提的是,我正在应用程序中创建我的主机,这样我就可以在我的应用程序的不同片段中重用它。

如何为Android应用程序定义预编译的包位置以加载?

EN

回答 2

Stack Overflow用户

发布于 2018-03-18 05:33:24

票数 3
EN

Stack Overflow用户

发布于 2021-03-27 15:20:42

作为Jay答案的后续,下面是一个远程包的工作实现

代码语言:javascript
运行
复制
    ReactInstanceManager.builder()
            .setApplication(getApplication())
            .setCurrentActivity(this).setJSBundleLoader(
                                JSBundleLoader.createCachedBundleFromNetworkLoader(
                                "index.android.bundle",
                                "http://localhost:8081/index.bundle?platform=android&dev=false&hot=false&minify=false"
                                )
                        )

不过,我确实有这样的错误:/ TypeError:React.useEffect is not a function,但是绑定器可以工作,并被触发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49204337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档