Служба определения местоположения iOS, обратный вызов - PullRequest
7 голосов
/ 06 мая 2011

Когда мы используем службы определения местоположения в приложении, мы получаем предупреждение iOS о том, что приложение пытается использовать текущее местоположение - Разрешить / Не разрешать.

У нас есть ответный вызов для этих кнопок?

Я хочу обработать нажатие кнопки «Не разрешать».

Ответы [ 3 ]

16 голосов
/ 06 мая 2011

У вас нет прямого доступа к этому предупреждению.

Если пользователь нажимает «Не разрешать» или приложение не имеет разрешения на использование служб определения местоположения, тогда CLLocationManager вызовет locationManager:didFailWithError: для своего делегата. Доменом ошибки будет kCLErrorDomain, а код ошибки будет kCLErrorDenied.

7 голосов
/ 21 мая 2015

Вы можете просто выбрать действие, как показано ниже:

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
    if (status == kCLAuthorizationStatusAuthorizedAlways || status == kCLAuthorizationStatusAuthorizedWhenInUse) {
        [self addRegion];
    }
    else if (status == kCLAuthorizationStatusDenied) {
        NSLog(@"Location access denied");
    }
}

убедитесь, что установлен делегат менеджера местоположений.

3 голосов
/ 06 мая 2011

Вы должны также проверить, разрешил ли пользователь сервисы определения местоположения для вашего приложения, прежде чем запускать менеджер местоположений.Используйте CLLocationManager метод класса locationServicesEnabled для проверки.

Вот документ:

locationServicesEnabled

Возвращает логическое значение, указывающее, включены ли службы определения местоположения наустройство.

+ (BOOL)locationServicesEnabled

Возвращаемое значение ДА, если службы определения местоположения включены, или НЕТ, если они не включены.

Обсуждение Пользователь может включить или отключить службы определения местоположения изв приложении «Настройки», переключив переключатель в меню «Настройки»> «Основные»> «Службы определения местоположения».

Перед запуском обновлений местоположения необходимо проверить возвращаемое значение этого метода, чтобы определить, включены ли у пользователя службы определения местоположения для текущего устройства.Если этот метод возвращает NO, и вы все равно запускаете обновления местоположения, базовая структура местоположения предлагает пользователю с панелью подтверждения, спрашивающей, следует ли повторно включить службы определения местоположения.

...