iOS SDK Tilgang til Device Data med UIDevice og NSLocale

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.


Betydningen av enhetsdata

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.


Forstå UIDevice Klasse

Du 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.


Innsikt i NSLocale Klasse

De 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.


Får enhetsinformasjonen

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.


Få brukerens språk

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.


Få appversjonen

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.


Logg på enhetsdataene

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.


Konklusjon

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.