RN动态加载
react-native-dynamic-load
https://github.com/MrGaoGang/...
react-native dynamic load bundle from remote;
Support
- iOS/Android dynamic load jsbundle/common bundle;
- iOS/Android supports simultaneous loading of multiple bundles
如何进行分包?点击ReactNative 分包方案介绍
# ios运行npm run build:ios# android运行npm run build:android
【RN动态加载】会自动进行分包,如果想要打包后的产物为数字类型,则在
compile/metro-base.js
中设置moduleIdByIndex=true
即可iOS 客户端动态加载
// 在应用启动的时候加载 jsbundle 基础包
[BridgeManager.instance loadBaseBundleWithLaunchOptions:launchOptions];
// 在需要的时候加载业务包
// 此处只是使用加载本地的bundle的方式,如果是在线的方式,可以先使用http下载然后加载本地
[BridgeManager.instance
loadBusinessBundle:@"business.ios"
moduleName:@"ReactNativeDynamic"
callback:^(BOOL succeed) {
if (succeed) {
RCTRootView *rootView = [[RCTRootView alloc]
initWithBridge:BridgeManager.instance.commonBridge
moduleName:@"ReactNativeDynamic"
initialProperties:nil];
self.view = rootView;
}
NSLog(@"%d",succeed);
}];
Android 客户端动态加载
// 应用启动的时候
SoLoader.init(this, /* native exopackage */ false);
ReactAppRuntime.init(this);
// 你的activity
public class MainActivityextends DynamicReactActivity {@Override
protected RnBundle getBundle(){
RnBundle bundle = new RnBundle();
bundle.scriptType = ScriptType.ASSET;
bundle.scriptPath = "business.android.bundle";
bundle.scriptUrl = "business.android.bundle";
bundle.appName = "ReactNativeDynamic";
return bundle;
}
}
推荐阅读
- 使用composer自动加载类文件
- 动态组件与v-once指令
- iview|iview upload 动态改变上传参数
- 众泰T500智能互联双加载,让汽车生活更有趣
- ImageLoaders 加载图像
- react-navigation|react-navigation 动态修改 tabBar 样式
- K14|K14 9/15销售提问法D2
- 类的加载过程
- 使用交叉点观察器延迟加载图像以提高性能
- 动态|诗歌《在精神科诊室》发《小说与诗》(香港)报