Ответ 1
Шаг 1: Нажмите название проекта → target → info → url Типы
Шаг 2:
-(IBAction)openSettingViewToEnableLocationService:(id)sender
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
}
Я хочу, чтобы программно открыть экран службы местоположения, чтобы включить службу.
Шаг 1: Нажмите название проекта → target → info → url Типы
Шаг 2:
-(IBAction)openSettingViewToEnableLocationService:(id)sender
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
}
Службы местоположения 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)
}
}
Вы можете открыть его прямо, как с помощью кода ниже,
Но сначала задайте URL Schemes
в URL-адресе Info.plist Like:
Затем напишите ниже строку на конкретном событии:
В Objective-C:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
В Свифт:
UIApplication.sharedApplication().openURL(NSURL(string: "prefs:root=LOCATION_SERVICES")!)
Надеюсь, что это поможет вам.
Я перепробовал все приведенные выше ответы, он не работает на 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.
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)
}
Тест 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
Перейдите к настройкам проекта → Информация → Типы URL → Добавить новые схемы URL
См. изображение ниже:
Второй:
Используйте нижеприведенный код, чтобы открыть Настройки местоположения:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
ссылка: fooobar.com/questions/50805/...
На самом деле существует гораздо более простое решение. Он покажет настройки вашего приложения с помощью услуг loction/камеры и т.д.:
func showUserSettings() {
guard let urlGeneral = URL(string: UIApplicationOpenSettingsURLString) else {
return
}
UIApplication.shared.open(urlGeneral)
}
После добавления prefs в качестве типа URL используйте следующий код, чтобы перейти непосредственно к настройкам местоположения приложения.
if let url = URL(string: "App-prefs:root=LOCATION_SERVICES") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
🚨🚨
Вы хотите быть в безопасности? используйте UIApplicationOpenSettingsURLString
, которая откроет настройки приложения без глубоких ссылок.
Используя App-prefs
ваше приложение будет отклонено, как сказано во многих дополнительных комментариях. https://github.com/mauron85/cordova-plugin-background-geolocation/issues/394
Если вы установили locationManager.startUpdatingLocation() и отключили его на своем iphone, он автоматически покажет вам alertView с возможностью открыть и активировать местоположение.