React Native & Code Push
本文主要实践了在已有项目中集成React native,并且通过code push实现更新ReactNative页面。 React NativeReact Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等。 以上主要是系统命令的配置, 为后面命令执行提供支持。 Android项目中集成React Native.
到这里, 集成React Native的部分就差不多了,但是这样直接运行会出现如下错误:” Can’t find variable: __fbBatchedBridge”。 只有将js文件打包到项目中才可以。
Code Push以上内容已经实现了在原有Android项目中集成React Native实现, 但是还是不能达到远程更新的目的。
include ':app',':react-native-code-push'
project(':react-native-code-push').projectDir = new File(rootProject.projectDir,'../node_modules/react-native-code-push/android/app')
// build.gradle文件添加项目依赖:
dependencies {
...
compile project(':react-native-code-push')
}
private ReactRootView mReactRootView;
private ReactInstanceManager mReactInstancemanager;
private CodePush mCodePush;
@Override
protected void onActivityCreate(Bundle savedInstanceState) {
mReactRootView = new ReactRootView(this);
mCodePush = new CodePush("HiZ5TYAH7YEC3uhckOwW4pevOPsm41p...",this);
mReactInstancemanager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(new MainReactPackage())
.addPackage(mCodePush.getReactPackage())
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.setJSBundleFile(mCodePush.getBundleUrl("index.android.bundle"))
.build();
try {
mReactRootView.startReactApplication(mReactInstancemanager,"reactView",null);
} catch (Exception e) {
e.printStackTrace();
}
setContentView(mReactRootView);
}
最后, 打包更新js文件 react-native bundle –platform android –entry-file index.android.js –bundle-output codepush.js –dev false? code-push release ‘app_name’ codepush.js 3.2.3? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |