2010-02-18 14 views
13

Utilizzando posizione consapevolezza su iPhone innesca la "X vorrebbe utilizzare la posizione corrente" - "Non consentire"/"OK". Nella documentazione CLLocationManager, è indicato:Quali sono le regole dietro "X vorrebbe usare la tua posizione attuale" su iPhone?

"L'utente ha la possibilità di negare l'accesso di un'applicazione ai dati del servizio di posizione. Durante il suo utilizzo iniziale da un'applicazione, il framework Posizione nucleo richiede all'utente di confermare che l'utilizzo del il servizio di localizzazione è accettabile Se l'utente rifiuta la richiesta, l'oggetto CLLocationManager segnala un errore appropriato al suo delegato durante le richieste future. "

ho trovato il "usi iniziali" per essere due volte se si colpisce "OK" per consentire servizi di localizzazione. Dalla terza volta in poi, l'iPhone ricorderà le tue impostazioni per tutti gli usi futuri dell'applicazione.

Tuttavia, un utente preme "Non consentire" sarà costantemente disturbato ogni volta che una parte della domanda cerca di utilizzi servizi di localizzazione. Ho provato almeno 15 volte nella mia app, e ho toccato "Non permettere" ancora di più nella "Vancouver 2010 - guida ufficiale per spettatori mobili". Questo è estremamente fastidioso per gli utenti che non vogliono usare questa funzione.

Le mie domande:

  • Per tutte le applicazioni, iPhone chiederà due volte e ricordare l'impostazione se si colpisce "OK". Questa è una osservazione corretta?
  • C'è un limite alla quantità di tentativi iPhone continuerà a chiedere se si colpisce "Non consentire", o è questo non è mai ricordata? come fai a gestirlo? Poiché locationManager: didFailWithError: viene notificato, suppongo che potrebbe aumentare ogni volta una proprietà del contatore e persistere. La volta successiva che l'applicazione viene utilizzata, questa impostazione viene verificata nel mio codice. Se contatore> = 2, non utilizzare la posizione principale.
  • L'unico modo che ho trovato per rimuovere il "OK" impostazione una volta ricordato, è riavviandolo per tutte le applicazioni in generale -> Reset -> Gli avvisi di posizione. C'è un modo per farlo solo per un'applicazione o dal mio codice?
+0

Io in realtà che questo è un buon comportamento. Se l'utente continua a utilizzare la tua app ma non i servizi di localizzazione, quanto è vitale avere anche i servizi di localizzazione? – bpapa

+0

Ho creato l'applicazione Mappa e intendo lanciare nel mercato delle app. la mia domanda è ... Dobbiamo impostare OK/Dont Allow alert tramite la codifica ?? Se sì, quindi reindirizzato il link di esempio. Grazie in anticipo. –

risposta

5
  1. Sì, sarà sempre chiedere due volte. Una specie di imho strano e non intuitivo. Ho capito che questo è il caso in cui si preme il pulsante sbagliato la prima volta. Dopo di ciò, si presume che tu sappia cosa volevi.

  2. ho trovato la seguente nell'esempio LocateMe:

    "Don't Allow" on two successive app launches is the same as saying "never allow". but I've also read that other folks are seeing the same behavior that you are. Maybe a change in recent OS update? Anyways, your approach sounds reasonable.

  3. Non credo che è possibile ripristinare in una sola applicazione, mi dispiace.

1

È ora possibile impostare o disinserire per un'app nelle impostazioni, in Generale, Servizi di localizzazione. Probabilmente introdotto in 4.0?

E se sei uno sviluppatore registrato, puoi controllare le differenze API per l'ultima versione beta. Potrebbero aver migliorato la gestione degli errori.

Problemi correlati