проверьте, разрешает ли пользователь приложению использовать свое местоположение
-
19-09-2019 - |
Вопрос
При первой попытке приложения узнать местоположение пользователя ему выдается запрос "Хотел бы использовать ваше текущее местоположение", и он может нажать "Не разрешать" или "ок".Есть ли какой-нибудь способ узнать, нажал ли пользователь кнопку "Ок" или "не разрешать"?Я пытаюсь заставить MKMapView показывать текущее местоположение пользователей, но я хотел бы предпринять различные действия, основанные на выборе пользователей.
Обычно вы бы подумали, что для получения этой информации должен быть делегат, но, похоже, его нет.
Заранее благодарю за вашу помощь.
Решение
Ваш первый вызов для определения местоположения пользователя завершится ошибкой, сообщающей вам, что пользователь отказал службам определения местоположения.Ваш CLLocationManagerDelegate
способ didFailWithError
будет вызываться, как показано ниже.(Константы определены в CLError.h
)
- (void)locationManager:(CLLocationManager*)aManager didFailWithError:(NSError*)anError
{
switch([anError code])
{
case kCLErrorLocationUnknown: // location is currently unknown, but CL will keep trying
break;
case kCLErrorDenied: // CL access has been denied (eg, user declined location use)
message = @"Sorry, flook has to know your location in order to work. You'll be able to see some cards but not find them nearby";
break;
case kCLErrorNetwork: // general, network-related error
message = @"Flook can't find you - please check your network connection or that you are not in airplane mode";
}
}