美文网首页
React native & Code push

React native & Code push

作者: sunbinqiang | 来源:发表于2016-03-25 20:56 被阅读637次

    本文主要实践了在已有项目中集成React native, 并且通过code push实现更新ReactNative页面。

    React Native

    React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等。

    *基本环境安装[参考]

    Android项目中集成React Native.

    主要参考: 链接

    下面看看主要碰到的几个问题:

    1, 直接运行会出现如下错误:" Can't find variable: __fbBatchedBridge"。 

    只有将js文件打包到项目中才可以。

    打包命令:mkdir -p android/app/src/main/assets       //在main中创建asserts文件

    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/              //打包   注意自己的asserts文件目录

    2, Native传递参数到Js文件

    native代码:

    Bundle bundle =newBundle();

    bundle.putString("token", accountService().token());

    mReactRootView.startReactApplication(mReactInstancemanager,"quanquan", bundle);

    Js代码:

    console.log(  'token :'+this.props.token);

    3, error : com.facebook.react.bridge.JSExecutionException: Error: Requiring module "22" which threw an exception

    注意react native是否安装成功,我这边出问题是在执行  npm install --save reactnative   命令的时候, 版本问题, 指定版本后安装: npm install --save reactnative@0.20.0

    4,  64位的问题

    报错: java.lang.UnsatisfiedLinkError: could find DSO to load: libreactnativejni.so

    原因: reactnative android不支持64位的库

    解决:

    在build.gradle, defaultConfig中添加以下代码:

    ndk {

    abiFilters "armeabi-v7a", "x86"    }

    https://github.com/facebook/react-native/issues/2814



    详细Android代码更新在github上: https://github.com/binqiangsun/DribbblApp/blob/master/app/src/main/java/com/dribbb/sun/dribbblapp/react/ShotInfoActivity.java

    Code Push

    CodePush 是提供给 React Native 和 Cordova 开发者直接部署移动应用更新给用户设备的云服务。CodePush 作为一个中央仓库,开发者可以推送更新到 (JS, HTML, CSS and images),应用可以从客户端 SDKs 里面查询更新。

    1.基本安装:[参考]

    2.集成到项目中[链接

    注意: 在Android项目中集成的话参考下面这一部分的代码:

    最后, 实现远程修改客户端代码(打包和推送命令)

    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

    碰到的问题:  com.facebook.react.bridge.NativeArgumentsParseException: CodePush.installUpdate got 5 arguments, expected 4

    解决: Codepush版本更新至1.9.0-beta

    相关文章

      网友评论

          本文标题:React native & Code push

          本文链接:https://www.haomeiwen.com/subject/gkldlttx.html