Domanda

Quando installo la mia applicazione su iPhone, viene richiesta la posizione corrente con le opzioni " Non consentire " e " Ok " in un avviso. Come faccio a sapere quale opzione è stata scelta? Voglio anche mostrare questa opzione solo una volta. Se l'utente sceglie di consentire il rilevamento della posizione corrente, voglio che il dispositivo ottenga automaticamente la posizione in background.

È stato utile?

Soluzione

Se l'utente ha negato l'accesso al servizio di localizzazione, viene chiamato il metodo delegato CLLocationManager didFailWithError: :

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
    if (error.code ==  kCLErrorDenied){
            // User denied access to location service       
    }
}

Altri suggerimenti

Il tuo controller dovrebbe implementare il protocollo CLLocationManagerDelegate . Questo definisce due metodi che dovrai implementare:

  1. - locationManager: didUpdateToLocation: fromLocation:
    In questo metodo inserisci il codice per gestire gli aggiornamenti di posizione.

  2. - locationManager: didFailWithError:
    Con questo metodo inserisci il codice per gestire l'utente che rifiuta la tua richiesta o che gli aggiornamenti non riescono.

Quando l'utente ti consente di utilizzare la sua posizione, non verrà più richiesto se non esce dall'app. Non esiste un modo per impedire al telefono di richiedere agli utenti ogni volta che avviano l'app.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top