Problem
Changing authorization in Settings to denied (when the App is suspended) fails to transmit PositionError to the WebView
(found this while testing #224 as I noticed the PERMISSION_DENIED message was not transmitted to the WebView)
What is expected to happen?
navigator.geolocation.watchPosition() the error handler is called with PositionError.PERMISSION_DENIED
What does actually happen?
navigator.geolocation.watchPosition() the error handler is not called at all.
Diagnosis
- locationManager: didFailWithError: is correctly called, but it is called while the app is in the background!
[CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:posError] executes without error
- The CDVWebView does not seem to receive anything or JS does not work while in background
- CDVWebViewEngine shouldReloadWebView:: is executed after the app has resumed (not sure what that does)
- geolocation is stopped without notice/error to the web-view code as errors are not delivered
This is quite difficult to fix.
Is there a way to send command-results delayed after the app resumes?
Environment, Platform, Device
cordova-plugin-geolocation HEAD, iOS 14
Problem
Changing authorization in Settings to denied (when the App is suspended) fails to transmit PositionError to the WebView
(found this while testing #224 as I noticed the PERMISSION_DENIED message was not transmitted to the WebView)
What is expected to happen?
navigator.geolocation.watchPosition() the error handler is called with PositionError.PERMISSION_DENIED
What does actually happen?
navigator.geolocation.watchPosition() the error handler is not called at all.
Diagnosis
- locationManager: didFailWithError:is correctly called, but it is called while the app is in the background![CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:posError]executes without errorThis is quite difficult to fix.
Is there a way to send command-results delayed after the app resumes?
Environment, Platform, Device
cordova-plugin-geolocation HEAD, iOS 14