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]
Libraries
Add Files to [your project's name]
转到 node_modules ➜ react-native-motion-manager 然后添加 RNMotionManager.xcodeproj
node_modules
react-native-motion-manager
RNMotionManager.xcodeproj
在 XCode 项目导航选择你的项目,添加 libRNMotionManager.a 到你项目的 Build Phases ➜ Link Binary With Libraries
libRNMotionManager.a
Build Phases
Link Binary With Libraries
在项目导航中点击 RNMotionManager.xcodeproj 然后转向 Build Settings 标签。确保 ‘All’ 勾选上 (替代 ‘Basic’)。查看 Header Search Paths 确保它包括 $(SRCROOT)/../react-native/React 和 $(SRCROOT)/../../React - ,把两个都标记为 recursive
Build Settings
Header Search Paths
$(SRCROOT)/../react-native/React
$(SRCROOT)/../../React
recursive
运行你的项目 (Cmd+R)
Cmd+R
var { Accelerometer, Gyroscope, Magnetometer } = require('NativeModules'); var { DeviceEventEmitter // will emit events that you can listen to } = React;
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.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();
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();