[
https://issues.apache.org/jira/browse/CB-5753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14198229#comment-14198229
]
Christopher Blum commented on CB-5753:
--------------------------------------
Had the same issue. See my proposed fix:
https://github.com/apache/cordova-plugin-geolocation/pull/29
> iOS: CDVLocation locationManager didFailWithError
> -------------------------------------------------
>
> Key: CB-5753
> URL: https://issues.apache.org/jira/browse/CB-5753
> Project: Apache Cordova
> Issue Type: Bug
> Components: Plugin Geolocation
> Affects Versions: 2.9.0, 2.9.1
> Environment: iOS
> Reporter: Martin Robin
> Assignee: Shazron Abdullah
> Labels: patch
>
> The delegate handler for didFailWithError appears to have a couple of
> issues...
> According to the
> [documentation|https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManagerDelegate_Protocol/CLLocationManagerDelegate/CLLocationManagerDelegate.html#//apple_ref/occ/intfm/CLLocationManagerDelegate/locationManager:didFailWithError:],
> {quote}If the location service is unable to retrieve a location right away,
> it reports a kCLErrorLocationUnknown error and keeps trying. In such a
> situation, you can simply ignore the error and wait for a new event.{quote}
> The handler within CDVLocation does not however take this into account and as
> a result if this error is raised it causes the location manager to be shut
> down without any warning.
> Within the same handler, there appears to be code to send a notification back
> to the JavaScript by way of the onError function. This notification is never
> received in the JavaScript so the error cannot be handled (by calling
> clearWatch and then restarting with a call to watchPosition for example).
> The first problem is (I believe) fairly easily resolved; simply ignoring the
> error (though possibly notifying the JavaScript) would suffice.
> I have no idea how to resolve the second problem. I have tried tracing the
> code and it appears to call commandDelegate::sendPluginResult (via
> returnLocationError) but the onError function in the (my) JavaScript does not
> receive the error. I do not understand how the plug-in model works enough to
> be able to follow up any further for myself.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]