Every time you call DeviceMotionEvent.requestPermission() it shows the permission prompt, but it should remember and not show the prompt if it was granted (that's what all the native permissions do) Sample app https://github.com/jcesarmobile/cordova-requestPermission-issue run cordova prepare open platforms/ios/HelloCordova.xcworkspace and run from Xcode on any iOS 13 device click "Access DeviceMotions" and "Allow" on the prompt run from Xcode again click "Access DeviceMotions" again the prompt is shown again, it should't because you already allowed it, DeviceMotionEvent.requestPermission() should just resolve.
<rdar://problem/64674099>
Right, we should expose a delegate that allows application to persistently grant/deny permission.