I am using Cordova 5.1.1 and [email protected] for geolocation, which uses - cordova-plugin-compat for its Android 6+ permission needs.
When the permission popup is open, Cordova reasonably fires a "pause" document event, as expected, signalling the view having left from the app to the popup (cordova.js):
case 'pause':
// Volume events
case 'volumedownbutton':
case 'volumeupbutton':
cordova.fireDocumentEvent(action); // action being "pause"
case 'resume':
....
And when the user taps either "Deny" or "Allow", Cordova fires a "resume" document event, and ionic's $ionicPlatform.on('resume', ...)
callback is run, also as expected.
However, after the user taps "Never ask again", all subsequent calls to request fine/coarse geolocation permissions fail without showing the permission popup, but still fire the "pause"/"resume" document events, which is unexpected.
The plugin does not have a check for showing permission rationale. Is there anything I can do to prevent pause/resume from being fired from JS if the user has already requested the app to never ask for permissions again?
The solution, upon inspection, is not to do anything in the $resume callback that obtains geolocation permissions.