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

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

Turn On Location Services to allow maps to determine your location

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

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

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

Можете ли вы мне помочь?

Спасибо

Ответ 1

Создание предупреждения довольно просто, это просто (faux-) модальный UIView.

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

Ответ 2

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

Изменить: Брант, упомянутый ниже, что "сообщение можно настроить, установив значение свойства назначения в свой CLLocationManager".

alt text

Ответ 3

Вы не можете открыть страницу определенных настроек, такую ​​как Общие, Locatios и т.д., но вы можете открыть страницу настроек в iOS 8.

  - (void)openSettings
  {
      BOOL canOpenSettings = (&UIApplicationOpenSettingsURLString != NULL);
      if (canOpenSettings)
      {
          NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
          [[UIApplication sharedApplication] openURL:url];
      }
  }

Ответ 4

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

Ответ 5

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

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

Ответ 6

Версия 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)
}

Ответ 7

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