将本机android部署文件反应到服务器

时间:2018-05-30 07:46:28

标签: javascript android react-native react-native-android react-native-code-push

我是React Native的新手我想知道如何在服务器上部署反应本机部分或代码(如javascript文件和资源),然后再使用它。

目前它显示为localhost

请让我知道如何在服务器上部署它也是可能的。

每当我更改代码中的某些内容时,是否需要更新Play商店中的应用程序?

究竟代码推送的作用是什么,有什么方法可以从服务器加载我的反应本机包并动态更新应用程序

3 个答案:

答案 0 :(得分:8)

React-native编译为两种本地语言。 实际上,您有2个应用程序,而不是Web应用程序。

您可以在服务器上安装远程图像资源,并使用反应原生代码中的URL和缓存(因此您不必每次都下载资产)。

考虑到JavaScript文件,我会说不。除非您创建服务器并通过API调用请求功能。

不,你不必每次都与游戏商店互动,但通常你会这样做:)

答案 1 :(得分:6)

我认为你需要了解React Native如何运作才能理解。

RN实际上做的是将本机API公开给您的Javascript代码库。基本上RN应用程序由两件事组成:

enter image description here

正如您可以想象的那样,原生部分是Swift/ Objective-C/ Java中写的所有内容,而这是您无需通过App商店就无法更新的部分。

现在有趣的是 JS 部分,请记住我们说基本上你正在使用JS本机API。如果您注意到运行react-native run-iosreact-native run-android的服务器是实例化的,它为您的模拟器/物理设备提供捆绑包

现在,如果您基本上在打开应用程序时考虑它,则会下载一个包然后运行。当应用程序在模拟器上运行时更新您的代码库时,服务器会通过套接字发送信号,通知客户端有可用的更新。此时客户端下载捆绑包并重新加载应用程序。

现在回答你的问题,是的,你可以在你的服务器上提供JS Bundle,并且如果新版本的JS Bundle可用,可以在加载或恢复时检查应用程序,如果可以的话,下载它(OTA更新)。您可以理解,只有Javascript部分可以以这种方式更新,而不是本机部分。

然后,有一些服务已经像MS的codepush那样做了。

答案 2 :(得分:5)

您可以使用code-push cliappcenter cli将您的Javascript代码发布到云服务器(由Microsoft托管),并使用react-native-code-push检索您的RN应用中的更新。

或者,您可以使用Expo,它具有自己的无线(OTA)更新功能。

上述两种服务都在内部为您管理服务器,并且不允许您在自己的服务器上托管JS捆绑包(尽管它有feature request)。

请注意,只能对OTA进行Javascript代码库更改。对本机代码(例如Swift / Java)的任何更新仍必须通过App Store / Google Play提供。