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

React Native Download JS Code from remote server

我目前正在 React Native 中进行研发。

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

本机 iOS 应用程序不可能这样做。

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

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

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

那么,如何从 App 下载 JS 代码以进行休息 API 调用并根据新的 JS 代码刷新应用程序?

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

提前致谢。

尤里卡!

我通过执行以下操作完成了此操作:

  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 android/app/src/main/res/

  2. 创建一个 Rest API 用于下载 js 包。参考 this link

    I have used SpringBoot. Make sure you add this to your API produces "text/javascript"

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

  4. 在 AppDelegate.m [for iOS] 和 ReactApplication class [for Android]

试试 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
}

此致,胡安