43 votes

Lecteur de code QR pour iPhone

Je veux créer une application basée sur un lecteur de code QR.

En utilisant quelle bibliothèque, je peux créer mon application?

Note: j'ai cherché dans google. Je reçois toujours du zxing . J'ai téléchargé le projet zxing. Mais le problème est; Je lance l'application. Mais il ne lit que les codes à barres . Il n'y a pas d'option pour lire le code QR.

S'il-te-plaît dis moi comment faire ça...

Merci d'avance.

49voto

MarkGranoff Points 12142

ZBarSDK est une autre option. Une bibliothèque très capable.

MISE À JOUR Janvier 2014

À compter de iOS7, AVCaptureDevice inclut désormais la possibilité de lire des codes à barres (de tout type) et de renvoyer une valeur lisible par l'homme. Si vous ciblez iOS7 +, c'est la voie à suivre. ZBarSDK est toujours idéal pour la prise en charge de pré-iOS7, bien sûr.

28voto

Govind P N Points 1016

AVCaptureMetaDataOutput - À partir de iOS 7

Numérisez les codes UPC, QR et codes à barres de toutes les variétés avec AVCaptureMetaDataOutput, une nouveauté pour iOS 7. Il vous suffit de le configurer comme sortie d’un AVCaptureSession et de mettre en œuvre le captureOutput:didOutputMetadataObjects:fromConnection: méthode en conséquence:

  @import AVFoundation;

 AVCaptureSession *session = [[AVCaptureSession alloc] init];
 AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
 NSError *error = nil;

 AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device
                                                                error:&error];
 if (input) {
     [session addInput:input];
 } else {
     NSLog(@"Error: %@", error);
 }

 AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];
 [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]];
 [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
 [session addOutput:output];

 [session startRunning];

 #pragma mark - AVCaptureMetadataOutputObjectsDelegate

 - (void)captureOutput:(AVCaptureOutput *)captureOutput
         didOutputMetadataObjects:(NSArray *)metadataObjects
              fromConnection:(AVCaptureConnection *)connection
   {
    NSString *QRCode = nil;
     for (AVMetadataObject *metadata in metadataObjects) {
       if ([metadata.type isEqualToString:AVMetadataObjectTypeQRCode]) {
            // This will never happen; nobody has ever scanned a QR code... ever
             QRCode = [(AVMetadataMachineReadableCodeObject *)metadata stringValue];
             break;
          }
      }

     NSLog(@"QR Code: %@", QRCode);
   }
 

AVFoundation supporte tous les codes dont vous avez entendu parler (et probablement quelques-uns que vous n'avez pas encore connus):

 AVMetadataObjectTypeUPCECode
AVMetadataObjectTypeCode39Code
AVMetadataObjectTypeCode39Mod43Code
AVMetadataObjectTypeEAN13Code
AVMetadataObjectTypeEAN8Code
AVMetadataObjectTypeCode93Code
AVMetadataObjectTypeCode128Code
AVMetadataObjectTypePDF417Code
AVMetadataObjectTypeQRCode
AVMetadataObjectTypeAztecCode
 

3voto

Dejel Points 3122

Essayez ZXingObjC en travaillant bien et facile à intégrer.

De plus, vous pouvez définir la taille de la fenêtre du scanner dans votre vue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X