Renvoyer vers les Réglages de géolocalisation

CéroceCéroce Membre, Modérateur

Bonjour à  tous,


 


Quand mon application cherche à  géolocaliser et que la localisation est désactivée, j'affiche actuellement une alerte pour dire " Veuillez activer la localisation en vous rendant dans l'application Réglages > MonApp > Localisation ".


 


J'étais resté sur l'idée qu'on ne pouvait pas renvoyer directement l'utilisateur sur la bonne page des Réglages pour qu'il puisse réactiver la localisation. Or, mon client m'a dit " Si, Google Maps le fait ". J'en doutais un peu, mais après avoir essayé,  Google Maps renvoie effectivement dans les réglages.


Bonjour à  tous,


 


Quand mon application cherche à  géolocaliser et que la localisation est désactivée, j'affiche actuellement une alerte pour dire " Veuillez activer la localisation en vous rendant dans l'application Réglages > MonApp > Localisation ".


 


J'étais resté sur l'idée qu'on ne pouvait pas renvoyer directement l'utilisateur sur la bonne page des Réglages pour qu'il puisse réactiver la localisation. Or, mon client m'a dit " Si, Google Maps le fait ". J'en doutais un peu, mais après avoir essayé,  Google Maps renvoie effectivement dans les réglages.


 


 


Savez-vous comment ils s'y prennent ?


 


Réponses

  • zoczoc Membre
    novembre 2014 modifié #2
    Avec la nouvelle API (cf. UIApplicationOpenSettingsURLString à  utiliser avec openURL) faite pour ça sous iOS 8 ?

    Voir le très bon article sur Core Location sous iOS 8 : http://nshipster.com/core-location-in-ios-8/

    Evidemment, ce n'est possible qu'avec iOS 8...
  • CéroceCéroce Membre, Modérateur

    Merci zoc, je vais regarder ça.


    Bizarre, mon client me jure pourtant que ça fonctionne sur son téléphone, sous iOS 7.


  • CéroceCéroce Membre, Modérateur

    D'après ce que je trouve sur le web, il existe un moyen en usant d'une API privée:



    int (*openApp)(CFStringRef, Boolean);
    void *hndl = dlopen("/System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices");
    openApp = (int(*)(CFStringRef, Boolean)) dlsym(hndl, "SBSLaunchApplicationWithIdentifier");
    openApp(CFSTR("com.apple.Preferences"), FALSE);
    dlclose(hndl);

    Seulement, comme ça n'est pas autorisé par Apple, il faut recomposer les chaà®nes pour ne pas se faire attraper par Apple lors de l'analyse statique de l'appli...


     


    Jusqu'à  iOS 5.1, on pouvait utiliser l'URL Scheme "///prefs:".


     


    Bon, j'en reste à  ma solution de laisser faire l'utilisateur sous iOS <= 7, et de renvoyer dans les réglages automatiquement sous iOS 8.


  • AliGatorAliGator Membre, Modérateur
    En + ton API privée elle ne fait qu'ouvrir les préférences mais pas forcement sur le bon réglage poir autant.
  • NasatyaNasatya Membre
    novembre 2014 modifié #6

    C'est bien qu'ils aient remis une solution pour ça c'est quand même plus propre que la pop-up indiquant le chemin d'accès. 

Connectez-vous ou Inscrivez-vous pour répondre.