react-native获取设备信息组件(react-native-device-info)
一、组件说明:
该组件同时适配Android和IOS平台。
二、组件介绍
1.首先需要安装组件:npm install react-native-device-info --save
2.IOS初始化:打开Xcode——>右击Libraries——>选择文件到当前项目,进入到node_modules/react-native-device-info——>添加.xcodeproj文件
2.1.在Xcode中点击你的工程名字——>Build Phases——>Link Binary With Libraries——>点击 '+'号按钮,添加libRNDeviceInfo.a文件(如下图所示)
2.2.添加环境变量:$(SRCROOT)/../react-native/React and $(SRCROOT)/../../React 并且修改 recursive
2.3.好了,下面就是基本的用法了
import DeviceInfo from 'react-native-device-info' console.log("Device Unique ID", DeviceInfo.getUniqueID()); // e.g. FCDBD8EF-62FC-4ECB-B2F5-92C9E79AC7F9 // * note this is IDFV on iOS so it will change if all apps from the current apps vendor have been previously uninstalled console.log("Device Manufacturer", DeviceInfo.getManufacturer()); // e.g. Apple console.log("Device Model", DeviceInfo.getModel()); // e.g. iPhone 6 console.log("Device ID", DeviceInfo.getDeviceId()); // e.g. iPhone7,2 / or the board on Android e.g. goldfish console.log("Device Name", DeviceInfo.getSystemName()); // e.g. iPhone OS console.log("Device Version", DeviceInfo.getSystemVersion()); // e.g. 9.0 console.log("Bundle Id", DeviceInfo.getBundleId()); // e.g. com.learnium.mobile console.log("Build Number", DeviceInfo.getBuildNumber()); // e.g. 89 console.log("App Version", DeviceInfo.getVersion()); // e.g. 1.1.0 console.log("App Version (Readable)", DeviceInfo.getReadableVersion()); // e.g. 1.1.0.89 console.log("Device Name", DeviceInfo.getDeviceName()); // e.g. Becca's iPhone 6 console.log("User Agent", DeviceInfo.getUserAgent()); // e.g. Dalvik/2.1.0 (Linux; U; Android 5.1; Google Nexus 4 - 5.1.0 - API 22 - 768x1280 Build/LMY47D) console.log("Device Locale", DeviceInfo.getDeviceLocale()); // e.g en-US console.log("Device Country", DeviceInfo.getDeviceCountry()); // e.g US
3.Android的安装:
3.1首先需要修改下Gradle文件
在你的根目录下运行:react-native link react-native-device-info
3.2在MainActivity.java文件中进行注册模块(react-native的版本需要>0.18)
import com.learnium.RNDeviceInfo.RNDeviceInfo; // <--- import public class MainActivity extends ReactActivity { ...... /** * A list of packages used by the app. If the app uses additional views * or modules besides the default ones, add more packages here. */ @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new RNDeviceInfo(), // <------ add here new MainReactPackage()); } }
3.3如果你需要在安卓上获取设备的名字,需要修改AndroidManifest.xml配置文件,来获取权限。
... <uses-permission android:name="android.permission.BLUETOOTH"/>
3.4用法同IOS。
翻译链接:https://github.com/rebeccahughes/react-native-device-info