La seguridad se está convirtiendo en una preocupación cada vez más grande en el espacio móvil. Como desarrolladores de iOS, hay muchas cosas que podemos hacer. Nos aseguramos de que la información confidencial se guarde en el llavero en lugar de texto sin formato. Nos aseguramos de que el contenido esté cifrado antes de enviarlo a un servidor remoto. Todo esto se hace para asegurarse de que la información del usuario es segura. A veces, sin embargo, necesitamos agregar una capa adicional de protección en el nivel de la interfaz de usuario.
A menos que el dispositivo del usuario esté inscrito en una solución de administración de dispositivos móviles (MDM), no puede obligar a los usuarios de su aplicación a configurar y usar un bloqueo de código de acceso en el nivel del dispositivo. ABPadLockScreen, sin embargo, proporciona una forma elegante y rápida de agregar dicha interfaz a su aplicación iOS. Permítame mostrarle cómo puede aprovechar ABPadLockScreen en sus aplicaciones de iOS.
ABPadLockScreen está disponible en GitHub, pero recomiendo instalarlo utilizando CocoaPods. Si no ha comenzado a usar CocoaPods para administrar dependencias en sus proyectos de iOS y OS X, entonces realmente debería comenzar hoy. Es la mejor manera de gestionar las dependencias en proyectos de cacao. Ya que este tutorial no es sobre CocoaPods, no entraré en detalles sobre la instalación de ABPadLockScreen con CocoaPods, pero puede leer mucho más al respecto en el sitio web de CocoaPods o leer nuestro tutorial de introducción en Tuts+.
Si prefiere instalar ABPadLockScreen manualmente, también está bien. Descargue o clone el código fuente en GitHub y copie los archivos en el ABPadLockScreen carpeta en su proyecto Xcode.
La biblioteca incluye dos UIViewController
subclases los ABPadLockScreenSetupViewController
La clase está diseñada para permitir que el usuario ingrese su pin inicial. Esto es tan simple como inicializar una nueva instancia del controlador de vista, pasar un delegado y presentar el controlador de vista de manera modal.
- (IBAction) setPin: (id) remitente ABPadLockScreenSetupViewController * lockScreen = [[ABPadLockScreenSetupViewController alloc] initWithDelegate: self pinLength: 5]; lockScreen.modalPresentationStyle = UIModalPresentationFullScreen; lockScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentViewController: lockScreen animated: YES complete: nil];
los ABPadLockScreenSetupViewControllerDelegate
El protocolo tiene un método requerido, que se invoca cuando el pin se establece correctamente.
- (void) pinSet: (NSString *) pin padLockScreenSetupViewController: (ABPadLockScreenSetupViewController *) padLockScreenViewController;
La configuración de un pin no es muy útil a menos que el usuario tenga la oportunidad de ingresar para obtener acceso a la aplicación. Una vez que esté listo para asegurar la aplicación, todo lo que necesita hacer es presentar una instancia de ABPadLockScreenViewController
clase, asigne un delegado, un pin y presente el controlador de vista modalmente.
- (IBAction) lockApp: (id) remitente ABPadLockScreenViewController * lockScreen = [[ABPadLockScreenViewController alloc] initWithDelegate: self pin: self.pin]; [lockScreen setAllowedAttempts: 3]; lockScreen.modalPresentationStyle = UIModalPresentationFullScreen; lockScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentViewController: lockScreen animated: YES complete: nil];
Si configura el permitidoAtentos
propiedad, el usuario solo tendrá un número predefinido de intentos antes de que el módulo los bloquee. Si permitidoAtentos
no está configurado, entonces el usuario puede intentar ingresar un pin tantas veces como quiera.
El delegado de la ABPadLockScreenViewController
instancia necesita para ajustarse a la ABPadLockScreenViewControllerDelegate
Protocolo, que declara cuatro métodos de delegado..
- (void) unlockWasSuccessfulForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (void) unlockWasUnsuccessful: (NSString *) falsePin afterAttemptNumber: (NSInteger) intentNumber padLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (void) unlockWasCancelledForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (void) intentaExpiredForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController;
Los métodos son bastante autoexplicativos. Puede obtener una devolución de llamada para un desbloqueo exitoso, una entrada sin éxito, una cancelación (eso está permitido) y, si los intentos del usuario han expirado, se alcanza el máximo de intentos permitidos.
Hay varias formas de personalizar la interfaz de la pantalla de bloqueo y su comportamiento. Usted puede:
4
por defecto0
o un número ilimitado de intentosAparte de eso, la interfaz de usuario también se puede personalizar muy fácilmente. La biblioteca utiliza el Aparición de la UIA
API para personalizar la interfaz de usuario de la pantalla de bloqueo. Todo, desde el fondo, el color del texto, el color de selección y las fuentes, puede configurarse para que coincida con el diseño de su aplicación.
[[Apariencia de ABPadLockScreenView] setLabelColour: [UIColor colorWithHexValue: @ "DB4631"]]; [[Apariencia de ABPadLockScreenView] setBackgroundColor: [UIColor colorWithHexValue: @ “282B35”]];
Echa un vistazo a las clases de vista, ABPadLockScreenView
, ABPadButton
, y ABPinSelectionView
, para ver cuales son los nombres de vista.
En este rápido consejo, hemos explicado brevemente cómo hacer que su aplicación iOS sea un poco más segura agregando una pantalla de bloqueo a su interfaz de usuario. Espero que encuentre la biblioteca útil y fácil de usar. Feliz codificacion.