DEPRECATED-mapbox-ios-sdk
DEPRECATED-mapbox-ios-sdk copied to clipboard
User Location Tracking is Not Resumed when Permission is Reinstated
Steps to Reproduce
- Set
showsUserLocation
toYES
. - Allow Location Services
- Go to Settings and turn off Location Services for your app
- Go back to your app
- Go to Settings and turn Location Services back on for your app
- Go back to your app
Actual Results
-
mapViewWillStartLocatingUser:
is never called at any point -
mapView:didUpdateUserLocation:
is never called after Location Services are revoked, even after they're turned back on
Expected Results
-
mapViewWillStartLocatingUser:
should be called once when Location Services are allowed the first time, and once again when Location Services are reinstated- This is consistent with the behavior of
mapViewDidStopLocatingUser:
, which is called both when Location Services are blocked on first request and when Location Services are revoked later
- This is consistent with the behavior of
-
mapView:didUpdateUserLocation:
should resume being called for location changes after Location Services are reinstated
In mapbox/mapbox-gl-native#1491, I wound up adding code that double-checks +[CLLocationManager authorizationStatus]
when the host app returns to the foreground. It’s for a different purpose, not the user dot, but the same approach would work here. I couldn’t find any other reliable way to get this notification.
That will probably be our in-app workaround as well. I hope that it's able to be addressed in Mapbox iOS SDK eventually though!