Säkra din iOS-app med ABPadLockScreen

Introduktion

Säkerheten blir en större och större problem i mobilutrymmet. Som IOS-utvecklare finns det många saker vi kan göra. Vi ser till att känslig information sparas i nyckelringen istället för vanlig text. Vi ser till att innehållet är krypterat innan det skickas till en fjärrserver. Allt detta görs för att säkerställa att användarens information är säker. Ibland måste vi dock lägga till ett extra skyddslag på användargränssnittet.

Om inte användarens enhet är inskriven i en MDM-lösning (Mobile Device Management), kan du inte tvinga programmets användare att konfigurera och använda ett lösenordslås på enhetens nivå. ABPadLockScreen ger dock ett snyggt och snabbt sätt att lägga till ett sådant gränssnitt till din iOS-applikation. Låt mig visa dig hur du kan utnyttja ABPadLockScreen i dina iOS-applikationer.

1. Inställning

ABPadLockScreen finns på GitHub, men jag rekommenderar att du installerar den med CocoaPods. Om du inte har börjat använda CocoaPods för hantering av beroenden i dina iOS- och OS X-projekt, bör du verkligen börja idag. Det är det bästa sättet att hantera dependancies i kakaoprojekt. Eftersom denna handledning inte handlar om CocoaPods kommer jag inte att gå in i detaljerna om att installera ABPadLockScreen med CocoaPods, men du kan läsa mycket mer om det på CocoaPods hemsida eller läsa vår inledande handledning om Tuts+.

Om du föredrar att installera ABPadLockScreen manuellt, så är det bra också. Hämta eller klon källkoden på GitHub och kopiera filerna i ABPadLockScreen mapp i ditt Xcode-projekt.

2. Pin Setup

Biblioteket innehåller två UIViewController underklasser. De ABPadLockScreenSetupViewController klassen är utformad för att tillåta användaren att ange sin ursprungliga pin. Detta är lika enkelt som att initiera en ny instans av visningsstyrenheten, passera en delegat och presentera visningsstyrenheten modellt.

- (IBAction) setPin: (id) avsändare ABPadLockScreenSetupViewController * lockScreen = [[ABPadLockScreenSetupViewController tilldela] initWithDelegate: self pinLength: 5]; lockScreen.modalPresentationStyle = UIModalPresentationFullScreen; lockScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentViewController: lockScreen animerad: JA slutförd: noll]; 

De ABPadLockScreenSetupViewControllerDelegate protokollet har en krävs metod, som påkallas när stiftet är korrekt inställt.

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

3. Lås och lås upp

Att ställa in en stift är inte särskilt användbar om inte användaren får chansen att skriva in den för att få tillgång till programmet. När du är redo att säkra programmet är allt du behöver göra att presentera en förekomst av ABPadLockScreenViewController klass, tilldela en delegat, en PIN-kod och presentera att han visar kontrollen modellt.

- (IBAction) lockApp: (id) avsändare ABPadLockScreenViewController * lockScreen = [[ABPadLockScreenViewController tilldela] initWithDelegate: self pin: self.pin]; [lockScreen setAllowedAttempts: 3]; lockScreen.modalPresentationStyle = UIModalPresentationFullScreen; lockScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentViewController: lockScreen animerad: JA slutförd: noll]; 

Om du ställer in allowedAttempts egendom, kommer användaren bara ha ett fördefinierat antal försök innan modulen låser dem ut. Om allowedAttempts är inte inställd så kan användaren försöka ange en stift så många gånger som hon vill ha.

Delegaten för ABPadLockScreenViewController Exempel måste överensstämma med ABPadLockScreenViewControllerDelegate protokoll, som deklarerar fyra delegerade metoder.

- (void) unlockWasSuccessfulForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (void) unlockWasUnsuccessful: (NSString *) falsePin afterAttemptNumber: (NSInteger) attemptNumber padLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (void) unlockWasCancelledForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (void) försökExpiredForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController;

Metoderna är ganska självförklarande. Du kan få en återuppringning för ett framgångsrikt upplåsning, en misslyckad post, en annullering-det som är tillåtet- och om användarens försök har löpt ut nådde de maximala tillåtna försöken.

4. Anpassning

Det finns flera sätt att anpassa gränssnittet för låsskärmen och dess beteende. Du kan:

  • aktivera / inaktivera knappen Avbryt
  • Ställ in stiftlängden, vilken är 4 som standard
  • Ange en anpassad text för någon av etiketterna, vilket är användbart för lokalisering
  • Ange antal försök, som standard till 0 eller ett obegränsat antal försök

Utöver detta kan användargränssnittet också anpassas mycket enkelt. Biblioteket använder UIAppearance API för att anpassa användargränssnittet för låsskärmen. Allt från bakgrunden, textfärg, urvalsfärg och teckensnitt kan ställas in för att matcha din applikationsdesign.

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

Kolla in visningstiderna, ABPadLockScreenView, ABPadButton, och ABPinSelectionView, för att se vad visningsnamnen är.

Slutsats

I det här snabba tipset har vi kortfattat täckt hur du gör din iOS-applikation lite säkrare genom att lägga till en låsskärm till användargränssnittet. Jag hoppas att du hittar biblioteket användbart och enkelt att använda. Lycklig kodning.