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

18

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

1) можно открыть приложение «Настройки» с помощью openURL ?

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

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

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

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

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

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

    
задан rohan-patel 28.03.2013 в 13:44
источник
  • Приват: // не устарел, он никогда не был официально выпущен. Это означает, что Apple может просто удалить поддержку для нее, когда когда-либо им это нравилось. –  rckoenes 28.03.2013 в 13:47
  • Да, хорошая точка. Это была серая область. –  Cocoadelica 28.03.2013 в 13:55

2 ответа

26

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

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

    
ответ дан Cocoadelica 28.03.2013 в 13:46
источник
16

Вы можете открывать приложения настроек программно в 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]];
    
ответ дан Rajneesh071 27.11.2014 в 10:23
источник
  • Копирование ответа некоторых людей - это один из видов плагиата, я бы сказал. –  rohan-patel 29.11.2014 в 08:04
  • Это программирование ... мир копий. –  Rajneesh071 29.11.2014 в 08:44
  • Кстати, мы не все знали, что –  thomers 22.01.2015 в 15:40
  • Нет проблем, чувак, я здесь, чтобы все знали :) –  Rajneesh071 04.02.2015 в 17:56
  • Код Swift имеет синтаксические ошибки - NSURL необходимо явно развернуть, а точка с запятой не нужна. Мое редактирование было отклонено, но что бы то ни было - вот правильный оператор: UIApplication.sharedApplication (). OpenURL (NSURL (строка: UIApplicationOpenSettingsURLString)!) –  Ralfonso 12.02.2015 в 17:22