A polyfill for the motion sensors based on the W3C Generic Sensor API
npm install motion-sensors-polyfillW3C Generic Sensor API polyfills
===
This is a polyfill for Generic Sensor-based motions sensors to make migration from the old DeviceOrientationEvent/DeviceMotionEvent to the new APIs a smoother experience.
In particular, this polyfill will allow the users of modern browsers to get a feel of the new API shape before it ships more broadly.
src/motion-sensors.js implements the following interfaces:
- Sensor
- Accelerometer
- LinearAccelerationSensor
- GravitySensor
- Gyroscope
- RelativeOrientationSensor
- AbsoluteOrientationSensor
src/geolocation.js implements the following interface:
How to use the polyfill
===
- Copy src/motion-sensors.js (source) into your project, or install via npm ($ npm i motion-sensors-polyfill).
- Import the motion sensor objects in your HTML (see browser support or use a polyfill to load this polyfill!):
```
- That's it. See AbsoluteOrientationSensor demo and RelativeOrientationSensor demo (code) for examples.
How to enable the native implementation in Chrome
===
Chrome 67 or later: the native implementation is enabled by default.
The Generic Sensor Extra Classes (chrome://flags/#enable-generic-sensor-extra-classes) feature flag can be activated to enable a few additional sensor types:AmbientLightSensor
- Magnetometer
-
Test suite
===
Run web-platform-tests with this polyfill enabled here.
Known issues
===
- AbsoluteOrientationSensor on iOS uses non-standard webkitCompassHeading that reports wrong readings if the device is held in its portrait-secondary orientation. Specifically, the webkitCompassHeading` flips by 180 degrees when tilted only slightly.
Learn more
===
- Sensors For The Web article on Google's Web Fundaments - a web developer-oriented article explaining how to use the Generic Sensor-based APIs.
Reporting a security issue
===
If you have information about a security issue or vulnerability with an Intel-maintained open source project on https://github.com/intel, please send an e-mail to secure@intel.com. Encrypt sensitive information using our PGP public key. For issues related to Intel products, please visit https://security-center.intel.com.