Снова откройте диалоговое окно «Приложение хочет использовать ваше текущее местоположение»

Возможный дубликат:
Можно ли вызвать предупреждение Разрешить использовать текущее местоположение вручную?

в моем приложении все функции основаны на текущем местоположении пользователя. Аудитория - это все, что угодно, кроме гиков.

Я думаю о том, что пользователь запускает приложение первым - поскольку пользователь не совсем уверен в том, что оно может сделать, он / она может быть сбит с толку приложением «Хотите использовать ваше текущее местоположение?» Если он ответит «Не разрешать», он не получит никаких данных на экране.

Теперь я занимаюсь:

- (void)locationManager:(CLLocationManager *)manager
   didFailWithError:(NSError *)error {

    if (error.code ==  kCLErrorDenied) {
        NSLog(@"Location manager denied access - kCLErrorDenied");

        UIAlertView *alert = 
              [[UIAlertView alloc] initWithTitle:@"Location issue" 
                                         message:@"Your location cannot be determined." 
                                        delegate:self 
                               cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [alert release];
    } 
}   

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

Как я могу заставить iOS снова запрашивать текущее местоположение?


person Chris Pillen    schedule 12.12.2011    source источник
comment
Я также хотел бы знать, как это сделать по той же причине.   -  person eric.mitchell    schedule 13.12.2011
comment
также stackoverflow.com/q/4891950/10396   -  person AShelly    schedule 13.12.2011


Ответы (2)


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

person Rafa de King    schedule 12.12.2011

В настоящее время единственный быстрый способ сделать это — попросить пользователя перезапустить приложение, а затем завершить работу (или установить ключ UIApplicationExitsOnSuspend и запустить Safari). Когда пользователь перезапустит приложение, диалоговое окно будет доступно.

Это может или не может привести к тому, что ваше приложение будет быстро отклонено, когда Apple проверит его.

person hotpaw2    schedule 12.12.2011