react-native-motion-manager 安装AccelerometerGyroscopeMagnetomer 介绍
react-native-motion-manager 是 CMMotionManager 对 react-native 的封装, 是 React
Native 的动力传感器(加速计,陀螺计,磁力计)组件。
添加到你的项目:
-
npm install react-native-motion-manager@latest --save
-
在 XCode 的项目导航右击 Libraries ➜ Add Files to [your project's name]
-
转到 node_modules ➜ react-native-motion-manager 然后添加 RNMotionManager.xcodeproj
-
在 XCode 项目导航选择你的项目,添加 libRNMotionManager.a 到你项目的 Build Phases ➜ Link Binary With Libraries
-
在项目导航中点击 RNMotionManager.xcodeproj 然后转向 Build Settings 标签。确保 ‘All’ 勾选上 (替代 ‘Basic’)。查看 Header Search Paths 确保它包括 $(SRCROOT)/../react-native/React 和 $(SRCROOT)/../../React - ,把两个都标记为 recursive
-
运行你的项目 (Cmd+R)
Api
安装
var { Accelerometer, Gyroscope, Magnetometer } = require('NativeModules'); var { DeviceEventEmitter // will emit events that you can listen to } = React;
Accelerometer
Accelerometer.setAccelerometerUpdateInterval(0.1); // in seconds DeviceEventEmitter.addListener('AccelerationData', function (data) { /** * data.acceleration.x * data.acceleration.y * data.acceleration.z **/ }); Accelerometer.startAccelerometerUpdates(); // you'll start getting AccelerationData events above Accelerometer.stopAccelerometerUpdates();
Gyroscope
Gyroscope.setGyroUpdateInterval(0.1); // in seconds DeviceEventEmitter.addListener('GyroData', function (data) { /** * data.rotationRate.x * data.rotationRate.y * data.rotationRate.z **/ }); Gyroscope.startGyroUpdates(); // you'll start getting AccelerationData events above Gyroscope.stopGyroUpdates();
Magnetomer
Magnetometer.setAccelerometerUpdateInterval(0.1); // in seconds DeviceEventEmitter.addListener('MagnetometerData', function (data) { /** * data.magneticField.x * data.magneticField.y * data.magneticField.z **/ }); Magnetometer.startMagnetometerUpdates(); // you'll start getting AccelerationData events above Magnetometer.stopMagnetometerUpdates();