react-native移动端如何获取设备信息

这次介绍的获取移动设备信息的组件名叫:react-native-device-info,兼容IOS和安卓双平台,可以获取设备ID、设备品牌、设备型号、IP以及APP版本号等信息。是一个应用很广泛的基础组件。

亲测可用,已在双端真机上测试,均能获取到设备信息!

安装

npm install --save react-native-device-info


注:如果React Naitve的版本大于0.47,那么需要使用>=0.11版本的react-native-device-info组件

因为涉及到原生代码,所以在执行完install后,需要执行link命令

react-native link react-native-device-info

PS: 注意⚠️使用link命令链接原生库后,可能需要重新下载node_modules包,否则可能出现报错现象!亲测报错并解决

项目跑起来后,在真机上红屏了,报错如下,这个错误在没有link之前,是不存在的: 

跑起来后的真机效果(正常运行): 

 

1.使用React-native link的背景
并不是所有的 APP 都需要使用全部的原生功能,包含支持全部特性的代码会增大应用的体积。但我们仍然希望能让你简单地根据自己的需求添加需要的特性。
在这种思想下,我们把许多特性都发布成为互不相关的静态库。
大部分的库只需要拖进两个文件就可以使用了,偶尔你还需要几步额外的工作,但不会再有更多的事情要做了。
我们随着 React Native 发布的所有库都在仓库中的Libraries文件夹下。其中有一些是纯 Javascript 代码,你只需要去import它们就可以使用了。另外有一些库基于一些原生代码实现,你必须把这些文件添加到你的应用,否则应用会在你使用这些库的时候产生报错。

2.具体使用React-native link的步骤:
(1)下载某个库到本地

npm install ******


(2)链接某个库到项目中

react-native link *****


(3)到此就成功的链接到ios和android项目中了

使用示例

  import DeviceInfo from 'react-native-device-info';

  const device = {};
  device.DeviceID = DeviceInfo.getUniqueID();
  device.UserAgent = DeviceInfo.getUserAgent();
  device.DeviceBrand = DeviceInfo.getBrand();
  device.DeviceModel = DeviceInfo.getModel();
  device.SystemVersion = DeviceInfo.getSystemVersion();
  device.AppVersion = DeviceInfo.getVersion();
  device.AppReadableVersion = DeviceInfo.getReadableVersion();

该组件使用也很方便,直接import后,直接调用相应的方法即可。但是有一个方法比较特殊就是isPinOrFingerprintSet方法,需要使用异步的方式来调。代码如下:

import DeviceInfo from 'react-native-device-info';

DeviceInfo.isPinOrFingerprintSet()(isPinOrFingerprintSet => {
  if (!isPinOrFingerprintSet) {
    ...
  }
}


 

你可能感兴趣的:(react-native)