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]];