首页主机react native android(React Native和Android整合详解)

react native android(React Native和Android整合详解)

编程之家2024-01-30104次浏览

一、React Native常用组件在Android和IOS上的不同

1.1.1只指定font,不指定height

react native android(React Native和Android整合详解)

在这种情况下,Text组件在两个平台上显示都正常。

可以看到,在垂直方向上,Text组件要比字高,上下都留有富余的空间,这样显示出来美观。但如果仔细看,就会发现Android平台的显示下方所留的控件比IOS平台的显示下方所留的空间要小一些。在IOS平台上,上下富余的空间基本相等;而在Android平台上,上方富余空间的高度大概下下方空间的1.5倍。

1.1.2只指定height,不指定fontSize

在这种极端情况下,不论height是何值,fontSize的值都是13。

1.1.3 fontSize等于height

在这种情况下,IOS平台和Android平台的表现不同。在IOS平台上,字的上方还有空间,但字的最下一部分没有显示出来。在Android平台上,这种情况更严重。

react native android(React Native和Android整合详解)

1.1.4 height大于fontSize

在IOS平台上,当height等于fontSize的1.2倍时,显示效果与只指定fontSize、不指定height类似。如果height继续增大,此时Text组件中显示字符的上方空间保持不变,而下方空间会随着height的增大而增大。

在Android平台上,当height等于fontSize的1.35倍时,显示效果与只指定fontSize、不指定height类似。如果height继续增大,此时Text组件中显示字符的上方空间保持不变,而下方空间会随着height的增大而增大。

1.2边框在两个平台上的不同表现

在样式中设置边框,比如“borderWidth:1”。

在IOS平台上,能够出现预想的边框效果。

react native android(React Native和Android整合详解)

在Android平台上,边框不会出现。

为了实现在Android平台上Text组件有边框,需要用一个View组件包裹Text组件。而这个View组件只需要有一个样式boderWidth。这种方式可以适用于两个平台。

二、react native 怎么统一android和ios的数据

先来看一个简单的demo,如何在RN中调用Android原生的的Toast模块。

index.android.jsvar React= require('react-native');

var{

ToastAndroid,

}= React;

...

ToastAndroid.show('This is a toast with short duration', ToastAndroid.SHORT)

index.android.js是ReactNative的入口文件,后缀Android表示是在Android平台使用的代码。ReactNative内置了babel,所以可以使用最新的JavaScript语法来开发(ECMAScript6简称es6),不熟悉es6的同学可以看看阮一峰写的这本[e6入门教程](ECMAScript 6入门)。这里我简单介绍一下require,Android程序员可以把require对应到Java的import,使用来导入一个JavaScript模块的。`var{ToastAndroid}= React`这种写法叫结构赋值,就是从React这个对象中,提取出ToastAndroid这个属性所对应的值,并赋值给ToastAndroid这个变量。可以看出toast模块就是从react-native这个模块中的ToastAndroid属性,js中的Toast模块API和Android中的JavaAPI基本是保持一致的。

三、如何在Android和iOS平台运行React Native应用

如果你还没有配置React Native开发环境,请访问:一步一步搭建ReactNative开发环境(Mac)

Android依赖的安装需要较多的步骤,安装的方法也有很多,接下来跟着我一步步的完成Android依赖的安装吧。

一、Android依赖

关于Android依赖的安装,大概分为三个步骤

1、如何安装jdk

(1)请前往链接:

(2)按照下图点击下载

(3)下载安装完以后,在终端输入java-version

如上图所示,即表示jdk安装成功。

2、通过命令brew install android-idk安装Android SDK。

3、actual SDK stuff、环境变量配置和AVD创建

(1)run the‘android’ tool to install the actual SDK stuff.

执行android命令,从而打开Android SDK管理器,如下图所示,管理器将会显示出安装包的安装情况。Android SDK

管理器允许你选择开发包进行安装。PS:我用红线框起来的部分,即1、2、3、4、5必须要确保选中,然后点击install

packages并接受合适的许可。等待安装完成需要花一段时间。

其中2、3、5使我们能够创建Android虚拟设备(Android Virtual Devices,AVDs),或模拟器。

PS:安装完成后,选中安装的选项的Not installed都会变成installed

(2)add the following to your~/.bashrc

PS:通过vi创建.bashrc文件,往文件中输入export ANDROID_HOME=/usr/local/opt/android-sdk内容保存并且退出

~/.bashrc文件保存退出后,需要执行source~/.bashrc让其立即生效,否则可能会出现如下bug:

SDK location not found. Define location with sdk.dir in the

local.properties file or with an ANDROID_HOME environment variable.

(PS:此处感谢RN技术交流群:555705178中的小伙伴:qq:419136078昵称:蜀中阆子)

(3)通过AVD管理器创建和运行模拟器

在终端输入android avd

键盘输入enter得到AVD管理器

点击create按钮并且填写创建模拟器的相关信息,如下图所示,对于模拟器选项,记得勾选Use Host GPU

上图中,除了填好相关信息以外,确保够炫了Use Host GPU,否则模拟器会非常慢

如果愿意的话,你可以创建许多AVD。由于android设备种类繁多,有不同的屏幕尺寸,分辨率和功能,因此使用不同的模拟器通常能为测试带来帮助。当然,处于学习的目的,我们只需安装一两个即可。

二、创建新应用

你可以使用React Native命令工具来创建一个新的应用,它会为你生成一个包涵React Native、iOS和Android的全新模版工程:

这一块windows安装一般6分钟左右,因为它只支持Android,如果是mac安装,大概需要十多分钟,它同时支持iOS和Android,所以包比较大。(PS:如果翻墙的话,iOS端一般四分钟左右)

三、将程序运行的iOS端有两种方式

1、方式一

通过Xcode直接打开iOS应用,运行即可。如下图所示。

2、方式二

先将终端、Xcode、模拟器退出,然后重启终端,在终端中切换到项目路径,再在终端中输入react-native run-ios

四、如何在Android端运行React Native程序

1、首先需要启动模拟器

启动模拟器有两种方式:

方式一:如下图所示,1终端输入android avd,输入enter启动AVD管理器,2选中模拟器,3点击Start启动模拟器

方式二:打开终端,1在终端中输入emulator-list-avds查看安装哪些模拟器,2通过emulator@模拟器名字启动模拟器

2、通过react-native run-android命令安装react native程序到Android上

PS:第一次使用react-native run-android命令时,因为需要下载很多配置文件,所以需要耐心等待,以后就不需要等待了

接下来我通过command+n新建一个终端,1首先先切换到项目路径,再在终端中输入react-native run-android命令

自动化控制系统(什么是自动化控制系统)visual studio 2008下载(VS2008)