web-dev-qa-db-fra.com

Comment ouvrir l'écran Services de localisation à partir de l'écran de configuration?

Je souhaite ouvrir un écran de service de localisation par programmation pour activer le service.

enter image description here

34
Monika Patel

Étape 1: Cliquez sur le nom du projet >> cible >> info >> types d'URL

enter image description here

Étape 2:

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

Services de location App-Prefs:root=Privacy&path=LOCATION a travaillé pour moi. Lorsque j'ai testé sur un appareil et non sur un simulateur.

Je ne vais pas énumérer les choses que j'ai essayées qui n'ont pas fonctionné, c'est une longue liste.

Exemple d'utilisation supposant que les services de localisation sont désactivés ou que l'autorisation est refusée ou non déterminée:

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)
    }
}
42
Joe Susnick

J'ai essayé toutes les réponses ci-dessus, cela ne fonctionne pas sur iOS11..il suffit d'ouvrir la page des paramètres et non les paramètres de l'application .. Enfin, cela fonctionne ..

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

Swift 4.2:

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

Voir: https://developer.Apple.com/documentation/uikit/uiapplicationopensettingsurlstring?language=Swift

17
Vijay Karthik

Vous pouvez l'ouvrir directement comme en utilisant le code ci-dessous,

Mais d'abord mis URL Schemes dans le type d'URL de Info.plist Like:

enter image description here

Puis écrivez au-dessous de la ligne à un événement spécifique:

Dans Objectif - C :

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

En Swift :

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

J'espère que ceci vous aidera.

12
Jigar Tarsariya

Swift 4.2

Allez directement dans les paramètres de votre application comme ceci. N'oubliez pas de mettre votre identifiant de paquet -

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

Swift 4 testé:

Le seul moyen d'éviter de se faire rejeter et d'ouvrir les préférences de localisation de sa propre application est:

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

First:

Ajouter une URL

Accédez à Paramètres du projet -> Info -> Types d’URL -> Ajouter de nouveaux modèles d’URL.

Voir l'image ci-dessous:

Seconde:

Utilisez le code ci-dessous pour ouvrir les paramètres d'emplacement:

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

référé de: https://stackoverflow.com/a/35987082/5575752

3
Ronak Chaniyara

Si vous définissez locationManager.startUpdatingLocation () et que vous avez désactivé votre iPhone, il vous affiche automatiquement un alertView avec la possibilité d'ouvrir et d'activer l'emplacement.

1
Nicolas Madrid

En fait, il existe une solution beaucoup plus simple à cela. Il affichera les paramètres de votre application avec les services de localisation/accès à la caméra, etc.:

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

Après avoir ajouté les préférences en tant que type d’URL, utilisez le code suivant pour accéder directement aux paramètres d’emplacement d’une application.

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

????????

Voulez-vous être en sécurité? utilisez UIApplicationOpenSettingsURLString, ce qui ouvrira les paramètres de l'application sans lien profond .

En utilisant App-prefs votre application sera rejetée, comme l’ont dit de nombreux sous-commentaires. https://github.com/mauron85/cordova-plugin-background-geolocation/issues/394

0
Estevão Lucas