UIAlertView вроде «Включите службы определения местоположения, чтобы карты могли определить ваше местоположение».Настройки + Отмена - PullRequest
11 голосов
/ 24 сентября 2010

Я хочу отправить это предупреждение:

Turn On Location Services to allow maps to determine your location

Мне нужны и «Настройки», и «Отмена», точно так же, как приложение «карты».

«Настройки» должны открывать настройки-> общие-> службы определения местоположения

Я не нашел способ открыть страницу настроек.

Вы можете мне помочь?

Спасибо

Ответы [ 7 ]

14 голосов
/ 03 декабря 2010

Создать оповещение довольно просто, это всего лишь (искусственный) модальный UIView.

Однако невозможно программно открыть приложение Настройки, по крайней мере, без использования частных методов, которые не позволят вашему приложению быть утвержденным для Магазина приложений.

6 голосов
/ 11 мая 2015

Вы не можете открыть определенную страницу настроек, такую ​​как General, Locatios и т. Д., Но вы можете открыть страницу настроек в iOS 8.

  - (void)openSettings
  {
      BOOL canOpenSettings = (&UIApplicationOpenSettingsURLString != NULL);
      if (canOpenSettings)
      {
          NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
          [[UIApplication sharedApplication] openURL:url];
      }
  }
6 голосов
/ 09 декабря 2010

Это невозможно выполнить самостоятельно. Тем не менее, если вашему приложению требуется доступ к службам определения местоположения, ОС представит вам такой диалог, как показано ниже.

Редактировать: Брант упомянул ниже, что «сообщение можно настроить, установив значение свойства target в вашем CLLocationManager.»

alt text

3 голосов
/ 15 ноября 2015

Swift 2.0 версия:

func showLocationSettingAlert() {
    let alertController = UIAlertController(
        title:  "Location Access Disabled",
        message: "Location settings",
        preferredStyle: .Alert)

    let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
    alertController.addAction(cancelAction)

    let openAction = UIAlertAction(title: "Open Settings", style: .Default) { (action) in
        if let url = NSURL(string:UIApplicationOpenSettingsURLString) {
            UIApplication.sharedApplication().openURL(url)
        }
    }
    alertController.addAction(openAction)
    self.presentViewController(alertController, animated: true, completion: nil)
}
2 голосов
/ 08 декабря 2010

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

То же самое происходит с push-уведомлениями.

2 голосов
/ 03 декабря 2010

В данный момент невозможно открыть панель настроек программно. См. здесь .

1 голос
/ 09 декабря 2010

Как говорили другие, вы не можете открыть приложение "Настройки" программно, если хотите, чтобы ваше приложение было в App Store.
Это всплывающее окно автоматически "генерируется" при запуске приложения, если оно поддерживает и использует определенные функции, такие как МестоположениеУслуга.
Более подробную информацию об этой услуге вы можете найти в Справочной библиотеке: https://developer.apple.com/library/ios/navigation/#section=Frameworks&topic=CoreLocation

...