capacitor-docs icon indicating copy to clipboard operation
capacitor-docs copied to clipboard

Error with the configuration of the plugin Motion

Open loicparent opened this issue 3 years ago • 2 comments

Describe the bug Hello, An error appears when I try to set the plugin @capacitor/motion.

To reproduce Steps to reproduce the behavior:

  1. Install an blank ionic project + add www and ìos`
  2. Install the plugin using these commands: npm install @capacitor/motion npx cap sync
  3. Open the file app.component.ts
  4. Add the imports on the top of the file
  5. In the function ngOnInit(), add the method to request the permission `await DeviceMotionEvent.requestPermission();``
  6. See the error (red underline below requestPermission): Property 'requestPermission' does not exist on type '{ new (type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent; prototype: DeviceMotionEvent; }'

Screenshot render

Expected behavior Don't have any error when I try to setup the plugin following the instructions.

Browser and OS (please complete the following information)

  • OS: MacOs Monterey 12.6
  • Browser: Chrome
  • Version: 105.0.5195.125

Thank you for your help, Loïc

loicparent avatar Oct 12 '22 15:10 loicparent

Hello,

I notice that this question was asked in the Ionic forum here. So it looks like this is not a recent issue. Could you please help us to use this plugin with Ionic?

Thanks, Loïc

loicparent avatar Oct 13 '22 09:10 loicparent

PR to improve this: https://github.com/ionic-team/capacitor-plugins/pull/1614

Essentially you want to call:

if ((DeviceMotionEvent as any).requestPermission) {
        const result = await (DeviceMotionEvent as any).requestPermission();
        // This should return a result of 'granted'
}

The DeviceMotionEvent.requestPermission API is available on some Safari/Mobile Safari/iOS versions so you need to check if the API exists before calling it.

dtarnawsky avatar May 23 '23 22:05 dtarnawsky