我目前正在React Native做R& D.
我有一个要求,我需要在应用程序中添加一些模块(基本上是代码)。
在原生iOS应用程序中不可能这样做。
在使用AppHub和CodePush等工具的React原生应用中,我们可以将构建推送到生产应用。 有一个库React Native Auto Updater用于下载最新的js包,但现在已弃用。
使用上述工具,我需要推送构建。
我有一个场景,我希望应用程序获取并下载保存在远程服务器上的捆绑包。
那么,如何从App下载REST代码并根据新的JS代码刷新应用程序?
我关注的是JS代码的下载。 我很清楚应用程序部分的自动更新。
提前致谢。
答案 0 :(得分:9)
尤里卡!
我通过以下方式完成了这项工作:
创建离线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 /
创建用于下载js包的Rest API。请参阅this link
我使用过SpringBoot。请务必将此添加到您的API 生成" text / javascript"
在您的应用中下载jsbundle,存储并获取捆绑包的路径。
在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
}
胡安