motion
Listen for device motion (acceleration) events via the DeviceMotionEvent and Generic Sensor APIs.
Import: @rtorcato/browser-common/motion
๐ MDN: DeviceMotionEvent ยท ๐ caniuse: deviceorientation
iOS 13+ Safari requires an explicit user-gesture permission grant (requestMotionPermission).
Exampleโ
import { isDeviceMotionAvailable, onDeviceMotion, requestMotionPermission } from '@rtorcato/browser-common/motion'
button.addEventListener('click', async () => {
if ((await requestMotionPermission()) === 'granted' && isDeviceMotionAvailable()) {
const off = onDeviceMotion((e) => console.log(e.acceleration))
}
})
Exportsโ
isDeviceMotionAvailable()โ feature check forDeviceMotionEventonDeviceMotion(callback)โ subscribes to motion events, returns an unsubscribe functionisGenericSensorApiAvailable()โ feature check for the Generic Sensor APIrequestMotionPermission()โ requests iOS 13+ motion permission, resolves'granted' | 'denied' | 'default'
See the API reference for full signatures.