[iOS] intégration d’un lecteur de carte dans votre application.

mardi 9 septembre 2014

Dans ce tutoriel, je vais vous expliquer comment intégrer un lecteur de carte d’identité mais je pense qu’il peut être utile pour intégrer n’importe quel appareil à votre device Apple.

Généralement, il suffit de suivre les instructions du sdk pour l’intégration.
Mais avec des appareils extérieurs à « pluger » sur votre device Apple, il faut aussi définir le manufacture pour reconnaître et communiquer avec l’appareil (protocole).

Il faut donc inclure le framework: ExternalAccessory.framework et définir dans le manufacture dans le plist:Supported external accessory protocols

Voici la mise en place d’un lecteur de carte d’identité de Zetes:

config_SIPIRO_M_SDK_3

Il faut aussi inclure les framework suivants:

config_SIPIRO_M_SDK_2

Dans ce cas-ci, il faut aussi ajouter un « other link flag » dans Build Settings

config_SIPIRO_M_SDK_1

Il faut aussi inclure le fichier EidReader.h et faire un import dans le fichier .h

#import "EidReader.h"
#import "Util.h"

Dans le .m, un exemple d’appel

    self.eidReader = [[EidReader alloc] init];
    int iRet = [self.eidReader open];
    UIAlertView *alert = [[UIAlertView alloc] init];
    BOOL abortReadCard = FALSE;
    switch (iRet){
        case E_READER_NOT_SUPPORTED:
            [alert setTitle:@"Reader not supported"];
            [alert setMessage:@"Your reader is not supported by eID-SDK"];
            [alert addButtonWithTitle:@"Close"];
            [alert show];
            self.eidReader = nil;
            break;
        case E_READER_NOT_PRESENT:
            [alert setTitle:@"No Reader attached"];
            [alert setMessage:@"Please attach reader and insert your eID"];
            [alert addButtonWithTitle:@"Close"];
            [alert show];
            self.eidReader = nil;
            break;
        case E_CARD_NOT_PRESENT:
            [alert setTitle:@"No card inserted"];
            [alert setMessage:@"Please insert your eID"];
            [alert addButtonWithTitle:@"Close"];
            [alert show];
            self.eidReader = nil;
            break;
        case E_CARD_NOT_SUPPORTED:
            [alert setTitle:@"Card unsupported"];
            [alert setMessage:@"Please insert valid eID and in the correct orientation"];
            [alert addButtonWithTitle:@"Close"];
            [alert show];
            self.eidReader = nil;
            break;
        default:
        if (!abortReadCard){
            textfield_firstname.text = self.eidReader.firstName;
            textfield_lastname.text = self.eidReader.lastName;
            textfield_street.text = self.eidReader.address;
            textfield_zip.text = self.eidReader.postalCode;
            textfield_city.text = self.eidReader.municipality;
        }
    }
    [self.eidReader close];

Tags: ExternalAccessory