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:
- 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
<script type="module">
browser support or use a polyfill to load this polyfill!):
<script type="module">
// Import the objects you need.
import {
Gyroscope,
AbsoluteOrientationSensor
} from './src/motion-sensors.js';
// And they're ready for use!
let gyroscope = new Gyroscope({ frequency: 15 });
let orientation = new AbsoluteOrientationSensor({ frequency: 60 });
</script>
- That's it. See AbsoluteOrientationSensor demo and RelativeOrientationSensor demo (code) for examples.
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
Run web-platform-tests with this polyfill enabled here.
AbsoluteOrientationSensor
on iOS uses non-standardwebkitCompassHeading
that reports wrong readings if the device is held in itsportrait-secondary
orientation. Specifically, thewebkitCompassHeading
flips by 180 degrees when tilted only slightly.
- Sensors For The Web article on Google's Web Fundaments - a web developer-oriented article explaining how to use the Generic Sensor-based APIs.
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 [email protected]. Encrypt sensitive information using our PGP public key. For issues related to Intel products, please visit https://security-center.intel.com.