Как открыть экран Location services с экрана настройки?

Я хочу открыть экран службы определения местоположения программно, чтобы включить службу. enter image description here

этот скриншот для refrence:

9 ответов


услуги App-Prefs:root=Privacy&path=LOCATION работал для меня. Когда я тестировал на устройстве, а не на симуляторе.

Я не буду перечислять то, что я пробовал, что не сработало, это длинный список.

пример использования, который предполагает, что службы location services отключены или разрешение отказано или не определено:

if !CLLocationManager.locationServicesEnabled() {
    if let url = URL(string: "App-Prefs:root=Privacy&path=LOCATION") {
        // If general location settings are disabled then open general location settings
        UIApplication.shared.openURL(url)
    }
} else {
    if let url = URL(string: UIApplicationOpenSettingsURLString) {
        // If general location settings are enabled then open location settings for the app
        UIApplication.shared.openURL(url)
    }
}

вы можете открыть его напрямую, как с помощью ниже код,

но первый сет URL Schemes in Info.тип URL plist:

enter image description here

затем напишите ниже строки на конкретном событии:

на С :

[[UIApplication sharedApplication] openURL:
 [NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];

на Свифт :

UIApplication.sharedApplication().openURL(NSURL(string: "prefs:root=LOCATION_SERVICES")!)

надеюсь, это поможет вам.


Swift 3

перейти прямо к настройкам вашего приложения, как это. Не забудьте ввести идентификатор пакета -

if let url = URL(string: "App-Prefs:root=Privacy&path=LOCATION/your.bundle.identifier") {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

Я пробовал все вышеперечисленные ответы, он не работает на iOS11..он просто открывает страницу настроек, а не настройки приложения .. Наконец-то это сработало..

UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!)

Refer:https://developer.apple.com/documentation/uikit/uiapplicationopensettingsurlstring?language=swift


первый:

добавить URL

перейдите в настройки проекта --> информация --> типы URL -> добавить новые схемы URL

см. рисунок ниже:

второй:

используйте код ниже, чтобы открыть Настройки местоположения:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];

ссылка: https://stackoverflow.com/a/35987082/5575752


Шаг 1: Нажмите на название проекта > > цель> > информация > > типы url

enter image description here

Шаг 2:

-(IBAction)openSettingViewToEnableLocationService:(id)sender
{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
}

на самом деле это гораздо более простое решение. Он покажет настройки вашего приложения с помощью loction services / camera access и т. д.:

func showUserSettings() {
    guard let urlGeneral = URL(string: UIApplicationOpenSettingsURLString) else {
        return
    }
    UIApplication.shared.open(urlGeneral)
}

SWIFT 4 тестирование:

единственный способ избежать отклонения и открыть Настройки местоположения собственного приложения:

if let bundleId = Bundle.main.bundleIdentifier,
   let url = URL(string: "\(UIApplication.openSettingsURLString)&path=LOCATION/\(bundleId)") {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

после добавления префов в качестве типа url используйте следующий код, чтобы перейти непосредственно к настройкам местоположения приложения.

if let url = URL(string: "App-prefs:root=LOCATION_SERVICES") {
     UIApplication.shared.open(url, options: [:], completionHandler: nil)
}