React Native从远程服务器下载JS代码

时间:2018-02-19 10:55:03

标签: android ios react-native react-native-code-push app-hub

我目前正在React Native做R& D.

我有一个要求,我需要在应用程序中添加一些模块(基本上是代码)。

在原生iOS应用程序中不可能这样做。

在使用AppHubCodePush等工具的React原生应用中,我们可以将构建推送到生产应用。 有一个库React Native Auto Updater用于下载最新的js包,但现在已弃用。

使用上述工具,我需要推送构建。

我有一个场景,我希望应用程序获取并下载保存在远程服务器上的捆绑包。

那么,如何从App下载REST代码并根据新的JS代码刷新应用程序?

我关注的是JS代码的下载。 我很清楚应用程序部分的自动更新。

提前致谢。

2 个答案:

答案 0 :(得分:9)

尤里卡!

我通过以下方式完成了这项工作:

  1. 创建离线jsbundle请参阅this link

      

    react-native bundle --platform android --dev false --entry-file   index.android.js --bundle-output   android / app / src / main / assets / index.android.bundle --assets-dest   机器人/应用/ SRC /主/ RES /

  2. 创建用于下载js包的Res​​t API。请参阅this link

      

    我使用过SpringBoot。请务必将此添加到您的API 生成" text / javascript"

  3. 在您的应用中下载jsbundle,存储并获取捆绑包的路径。

  4. 在AppDelegate.m [针对iOS]和ReactApplication类[针对Android]中重置React native的bundle路径

答案 1 :(得分:0)

尝试使用 react-native-dynamic-bundle 软件包:https://github.com/mauritsd/react-native-dynamic-bundle

此外,您可以使用 react-native-fs 下载捆绑软件:

import RNFS from 'react-native-fs'

export const download = async (fromUrl, bundleName) => {
  return RNFS.downloadFile({
    fromUrl,
    toFile: RNFS.DocumentDirectoryPath + `/${bundleName}.bundle`,
  }).promise
}

胡安