美文网首页
android 端集成react native

android 端集成react native

作者: 我弟是个程序员 | 来源:发表于2017-07-13 09:15 被阅读0次

react native 开发环境搭建这里就不多讲了,开发环境搭建直接看这里
下面来看看android端搭建react-native开发环境:

  • 在项目的根目录中运行,在应用中添加react-native 环境代码:
npm init  
npm install --save react react-native

npm init创建了一个空的node模块(其实就是创建了一个package.json描述文件),
npm install则创建了node_modules目录并把react和react-native下载到了其中。

  • 在你的app中 build.gradle(Module级别) 文件中添加 React Native 依赖:
dependencies {
     ...
     compile "com.facebook.react:react-native:+" // From node_modules.
 }
  • 在项目的 build.gradle (Project级别)文件中为 React Native 添加一个 maven 依赖的入口,必须写在 "allprojects" 代码块中:
allprojects {
    repositories {
        ...
        maven {
            // All of React Native (JS, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
    ...
}

确保依赖路径的正确!以免在 Android Studio 运行Gradle同步构建时抛出 “Failed to resolve: com.facebook.react:react-native:0.x.x" 异常。

  • 在 AndroidManifest.xml 清单文件中声明网络权限以及调试用的DevSettingsActivity声明:
<uses-permission android:name="android.permission.INTERNET" />
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />

其实到这里,开发环境已经完成了。

  • 接下来想要通过原生代码调用 React Native ,我们需要创建一个Activity 对象并让它继承ReactActivity:
public class CollectionSearchRNActivity extends ReactActivity {
    public static final String MAIN_COMPONENTNAME = "collectionSearch"; //这是本Activity映射到RN中的别名

    @Override
    protected String getMainComponentName() { //必须重写该函数
        return MAIN_COMPONENTNAME;
    }
}

当然必要的的在 AndroidManifest.xml 清单文件中作相关的声明:

 <activity android:name=".CollectionSearchRNActivity" />

然后在你的react-native端,要注册CollectionSearchRNActivity,用别名字符串注册:

import React, { Component } from 'react';
import {
  AppRegistry
} from 'react-native';
AppRegistry.registerComponent('collectionSearch', () => collectionSearch);//馆藏检索

AppRegistry.registerComponent()第一个参数的'collectionSearch',表示react-native 内部的组件,这个名字随便你自己编码的时候取,没有硬性要求,第二个参数是个函数,ES6的写法,返回值collectionSearch表示上面之间在android本地创建的一个Activity 的别名collectionSearch,必须同步对应。

  • ** 最后你就可以去创建一个名为collectionSearch的组件了,这里就不多说了,创建完后,就可以运行。**

额外福利,当你运行的程序是,如果环境都搭建好了,运行时跑错说啥服务没跑起来,让你检查这检查那一大堆的,你可以控制台在项目跟目录下运行 :react-native start,启动服务支持。要是还是断开连接,你可以尝试控制台下运行:adb reverse tcp:8081 tcp:8081,然后问题就可以解决了。

相关文章

网友评论

      本文标题:android 端集成react native

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