Sikre din iOS-app med ABPadLockScreen

Introduksjon

Sikkerhet blir en større og større bekymring i mobilområdet. Som iOS-utviklere er det mange ting vi kan gjøre. Vi sørger for at sensitiv informasjon lagres i nøkkelringen i stedet for vanlig tekst. Vi sørger for at innholdet er kryptert før det sendes til en ekstern server. Alt dette er gjort for å sikre at brukerens informasjon er sikker. Noen ganger må vi imidlertid legge til et ekstra lag med beskyttelse på brukergrensesnittnivå.

Med mindre brukerens enhet er registrert i en MDM-løsning (Mobile Device Management), kan du ikke tvinge brukerens brukere til å konfigurere og bruke en passordlås på enhetens nivå. ABPadLockScreen gir imidlertid en stilig og rask måte å legge til et slikt grensesnitt på iOS-programmet. La meg vise deg hvordan du kan utnytte ABPadLockScreen i dine iOS-applikasjoner.

1. Setup

ABPadLockScreen er tilgjengelig på GitHub, men jeg anbefaler å installere den med CocoaPods. Hvis du ikke har begynt å bruke CocoaPods for å administrere avhengigheter i dine iOS- og OS X-prosjekter, så burde du virkelig starte i dag. Det er den beste måten å håndtere avhengigheter i kakaoprosjekter. Siden denne opplæringen ikke handler om CocoaPods, går jeg ikke inn i detaljene for å installere ABPadLockScreen ved hjelp av CocoaPods, men du kan lese mye mer om det på CocoaPods nettsted eller lese vår introduksjonsveiledning på Tuts+.

Hvis du foretrekker å installere ABPadLockScreen manuelt, så er det bra også. Last ned eller klon kildekoden på GitHub og kopier filene i ABPadLockScreen mappe inn i Xcode-prosjektet ditt.

2. Pin Setup

Biblioteket inneholder to UIViewController klasser. De ABPadLockScreenSetupViewController klassen er laget for å tillate brukeren å legge inn sin første pin. Dette er like enkelt som å initialisere en ny forekomst av visningskontrolleren, passere en delegat og presentere visningsregulatoren modelt.

- (IBAction) setPin: (id) avsender ABPadLockScreenSetupViewController * lockScreen = [[ABPadLockScreenSetupViewController allokere] initWithDelegate: self pinLength: 5]; lockScreen.modalPresentationStyle = UIModalPresentationFullScreen; lockScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentViewController: lockScreen animert: JA ferdigstillelse: null]; 

De ABPadLockScreenSetupViewControllerDelegate protokollen har en nødvendig metode, som påberopes når pinnen er vellykket.

- (void) pinSet: (NSString *) pin padLockScreenSetupViewController: (ABPadLockScreenSetupViewController *) padLockScreenViewController;

3. Lås opp og låse opp

Det er ikke veldig nyttig å sette opp en pin, med mindre brukeren får en sjanse til å skrive inn den for å få tilgang til programmet. Når du er klar til å sikre søknaden, er alt du trenger å gjøre presentere en forekomst av ABPadLockScreenViewController klasse, tilordne en delegat, en pin, og presentere han vise kontrolleren modalt.

- (IBAction) lockApp: (id) avsender ABPadLockScreenViewController * lockScreen = [[ABPadLockScreenViewController allokere] initWithDelegate: selvpinne: self.pin]; [lockScreen setAllowedAttempts: 3]; lockScreen.modalPresentationStyle = UIModalPresentationFullScreen; lockScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentViewController: lockScreen animert: JA ferdigstillelse: null]; 

Hvis du setter inn allowedAttempts eiendom, vil brukeren bare ha et forhåndsdefinert antall forsøk før modulen vil låse dem ut. Hvis allowedAttempts er ikke satt, så kan brukeren prøve å skrive inn en pin så mange ganger som hun vil.

Delegaten til ABPadLockScreenViewController forekomsten må i samsvar med ABPadLockScreenViewControllerDelegate protokoll, som erklærer fire delegerte metoder.

- (void) unlockWasSuccessfulForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (void) unlockWasUnsuccessful: (NSString *) falsePin afterAttemptNumber: (NSInteger) attemptNumber padLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (void) unlockWasCancelledForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (ugyldig) forsøkExpiredForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController;

Metodene er ganske selvforklarende. Du kan få tilbakekalling for en vellykket opplåsning, en mislykket oppføring, en kansellering - det er tillatt - og hvis brukerens forsøk er utløpt, nådde de maksimalt tillatt forsøkene.

4. Tilpasning

Det er flere måter du kan tilpasse grensesnittet til låseskjermen og dens oppførsel. Du kan:

  • aktiver / deaktiver avbryt-knappen
  • sett pin lengden, som er 4 som standard
  • sett en egendefinert tekst for noen av etikettene, som er nyttig for lokalisering
  • angi antall forsøk, som standard til 0 eller et ubegrenset antall forsøk

Bortsett fra det, kan brukergrensesnittet også tilpasses veldig enkelt. Biblioteket bruker UIAppearance API for å tilpasse brukergrensesnittet til låseskjermen. Alt, fra bakgrunnen, tekstfarge, utvalgsfarge og skrifttyper, kan settes for å matche søknaden din.

[[ABPadLockScreenView utseende] setLabelColour: [UIColor colorWithHexValue: @ "DB4631"]]; [[ABPadLockScreenView utseende] setBackgroundColor: [UIColor colorWithHexValue: @ "282B35"]]; 

Sjekk ut visningsklassene, ABPadLockScreenView, ABPadButton, og ABPinSelectionView, for å se hva visningsnavnene er.

Konklusjon

I dette raske tipset har vi kortfattet dekket hvordan du gjør din iOS-applikasjon litt sikrere ved å legge til en låseskjerm til brukergrensesnittet. Jeg håper du finner biblioteket nyttig og brukervennlig. Glad koding.