Как открыть экран служб местоположения на экране настроек?

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

enter image description here

Ответы

Ответ 1

Шаг 1: Нажмите название проекта → target → info → url Типы

введите описание изображения здесь

Шаг 2:

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

Ответ 2

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

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

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

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)
    }
}

Ответ 3

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

Но сначала задайте URL Schemes в URL-адресе Info.plist Like:

enter image description here

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

В Objective-C:

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

В Свифт:

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

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

Ответ 4

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

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

Swift 4.2:

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

См. Https://developer.apple.com/documentation/uikit/uiapplicationopensettingsurlstring?language=swift.

Ответ 5

Swift 4.2

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

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

Ответ 6

Тест SWIFT 4:

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

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

Ответ 7

Сначала:

Добавить URL

Перейдите к настройкам проекта → Информация → Типы URL → Добавить новые схемы URL

См. изображение ниже:

Второй:

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

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

ссылка: fooobar.com/questions/50805/...

Ответ 8

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

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

Ответ 9

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

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

Ответ 10

🚨🚨

Вы хотите быть в безопасности? используйте UIApplicationOpenSettingsURLString, которая откроет настройки приложения без глубоких ссылок.

Используя App-prefs ваше приложение будет отклонено, как сказано во многих дополнительных комментариях. https://github.com/mauron85/cordova-plugin-background-geolocation/issues/394

Ответ 11

Если вы установили locationManager.startUpdatingLocation() и отключили его на своем iphone, он автоматически покажет вам alertView с возможностью открыть и активировать местоположение.