IPhone-Open Настройки из моего приложения iOS 6

Я знаю, что есть много вопросов, связанных с этим.

1) можно открыть приложение "Настройки" , используя openURL?

2) Открытие приложения настроек из другого приложения

3) Настройки запуска iOS → Схема URL-адресов ограничений

Я задал эти вопросы для справки, но это не решает мой запрос. Я знаю, что с помощью метода openURL вы можете открыть "Настройки", но это было действительно только для iOS 5.0 - 5.0.1. В iOS 5.1 он устарел.

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]]; 

Тем не менее, я видел множество приложений, в основном основанных на местоположении, на которых запрашивается разрешение пользователя на включение служб определения местоположения и выполняется непосредственно в Службах размещения в разделе Настройки → Конфиденциальность. Снимок экрана приложения, установленного на устройстве iOS 6.1 ниже, показывает, что нажатие на "Настройки" позволяет вам напрямую Службы определения местоположения.

Я попытался запустить код в своем приложении, но он не работает (я хочу перейти на страницу настроек, чтобы мое приложение могло получить доступ к контактной информации непосредственно из моего приложения). Если Apple отключила URL-схемы для этого, как многие приложения все еще используют его?

enter image description here

Ответ 1

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

iOS 6 удалила возможность сделать это самостоятельно, как вы упомянули.

Ответ 2

Вы можете открывать приложения настроек программно в iOS8, но не в ранних версиях iOS.

В Swift:

UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString));

Swift 4:

if let url = NSURL(string: UIApplicationOpenSettingsURLString) as URL? {
    UIApplication.shared.openURL(url)
}

В Objective-C

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];