Denne opplæringen viser hvordan du får tilgang til nøkkel iOS-enheten og brukerinformasjon, for eksempel enhetsmodellen, iOS-versjonsnummer, brukerens valgte språk og mer. Denne informasjonen kan være nyttig for å diagnostisere applikasjonsproblemer eller å gi tilpassede brukeropplevelser i appen din.
Så, hvorfor vil du ha tilgang til enhetsdataene?
App-brukere sender ofte e-postutviklere med tilbakemelding eller for å få hjelp hvis de har et problem. Det kan være nyttig å få mer informasjon om brukerens enhet og miljø uten å måtte spørre dem. Hvis appen din for eksempel krever Internett-tilkobling og en bruker med en iPod touch-e-post, sier du at appen ikke virker riktig når du går, kan du raskt utlede at dette er sannsynlig fordi brukeren ikke hadde tilgang til Internett. I tillegg ved å vite iOS-versjonen, appversjonen og brukerens land og språk gir du enda mer innsikt i brukeren, enheten og hva som kan bidra til problemet brukeren opplevde.
I tillegg til feil- og problemsporingsscenarioet som presenteres ovenfor, kan tilgang til informasjon fra UIDevice eller NSLocale også vise seg nyttig for å tilpasse programgrensesnittet eller oppførselen din.
UIDevice
KlasseDu kan gjenkjenne UIDevice
klasse fra møter med enhetsretning, men UIDevice
tilbyr en rekke egenskaper, metoder og varsler som gir innsikt i en enhet. Fra sporing av batterinivåer for å bestemme enhetens nærhet til brukerens ansikt, formålet med UIDevice
er å gi data om en brukers enhet. De UIDevice
klassen gir også tilgjengelige egenskaper knyttet til identifisering av detaljer om en enhet, for eksempel modellen og iOS-versjonen. Du vil se noen av disse egenskapene i aksjon når vi kommer inn i opplæringen.
NSLocale
KlasseDe NSLocale
klassen hjelper appen din til å overholde de kulturelle og språklige konvensjonene til brukerens region. Ved å gi midler for å justere formatering for ting som valutasymboler, desimaltegn, tid eller dato, vil en app fungere som brukeren forventer. I tillegg, NSLocale
kan brukes til å finne ut hvilken lokal en bruker er satt til, en nyttig del av informasjon når en bruker sender e-post til deg for støtte.
La oss begynne med å få enhetens modell (iPhone, iPod touch eller iPad) og iOS-versjonen. Følgende kode gir enhetsspesifikke opplysninger fra UIDevice
:
UIDevice * currentDevice = [UIDevice currentDevice]; NSString * model = [currentDevice modell]; NSString * systemVersion = [currentDevice systemVersion];
I første linje, UIDevice
returnerer en forekomst av enheten i sin nåværende tilstand. Herfra får vi tilgang til modell- og systemversjonsegenskapene for å få enhetens modell- og systemversjon.
Deretter henter vi detaljer om brukerens språk og regioninnstillinger.
NSArray * languageArray = [NSLocale preferredLanguages]; NSString * language = [languageArray objectAtIndex: 0]; NSLocale * locale = [NSLocale currentLocal]; NSString * country = [locale localeIdentifier];
Brukerens primære språk kan fås ved å bruke NSLocale
metode preferredLanguages
, som returnerer brukerens nåværende språkinnstilling. Brukerens lokalitet, eller land / region, kan hentes fra den returnerte NSLocale
gjenstand. Eksempelsmetoden localeIdentifier
returnerer en bestemt kode som representerer brukerens land / region.
La oss endelig finne ut hvilken versjon av appen brukeren kjører.
NSString * appVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey: (NSString *) kCFBundleVersionKey];
Appens info.plist-fil lagrer gjeldende appversjonsinformasjon, og ved å få tilgang til mainBundle
bruker kCFBundleVersionKey
, App-versjonen vil bli returnert.
Deretter logger vi inn dataene samlet.
NSString * deviceSpecs = [NSString stringWithFormat: @ "% @ -% @ -% @ -% @ -% @", modell, systemVersion, språk, land, appVersion]; NSLog (@ "Enhetsspesifikasjoner ->% @", deviceSpecs);
I dette eksemplet pakkes hvert stykke informasjon inn i en streng som skal vises i konsollen. I praktisk bruk kan det være lurt å vise det på emnelinjen eller i en tilbakemeldingskonto.
Når det gjelder for app-brukere, er det bedre å vite mer om enheten hvis du trenger å tilby løsninger. Brukere har ofte vanskelig å artikulere scenariet de har problemer med. Ved å vite mer om enheten, vil du være bedre i stand til å hjelpe dem med problemet deres, i siste instans å gi bedre service og generere lykkere brukere. Å få tilgang til enhetsdata er også nyttig for å skape tilpassede skreddersydde samhandlinger i appen din. Spørsmål eller kommentarer? La dem stå i kommentarfeltet nedenfor eller meld meg på Twitter @aaron_crabtree.