react-native-motion-managerCMMotionManager包裝器
react-native-motion-manager 是 CMMotionManager 對(duì) react-native 的封裝, 是 React Native 的動(dòng)力傳感器(加速計(jì),陀螺計(jì),磁力計(jì))組件。
添加到你的項(xiàng)目:
-
npm install react-native-motion-manager@latest --save -
在 XCode 的項(xiàng)目導(dǎo)航右擊
Libraries?Add Files to [your project's name] -
轉(zhuǎn)到
node_modules?react-native-motion-manager然后添加RNMotionManager.xcodeproj -
在 XCode 項(xiàng)目導(dǎo)航選擇你的項(xiàng)目,添加
libRNMotionManager.a到你項(xiàng)目的Build Phases?Link Binary With Libraries -
在項(xiàng)目導(dǎo)航中點(diǎn)擊
RNMotionManager.xcodeproj然后轉(zhuǎn)向Build Settings標(biāo)簽。確保 'All' 勾選上 (替代 'Basic')。查看Header Search Paths確保它包括$(SRCROOT)/../react-native/React和$(SRCROOT)/../../React- ,把兩個(gè)都標(biāo)記為recursive -
運(yùn)行你的項(xiàng)目 (
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();