web-dev-qa-db-fra.com

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?

Remarque: J'ai cherché dans google. Toujours je reçois zxing. J'ai téléchargé le projet zxing. Mais le problème est; Je lance l'application. Mais il ne lit que le 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.

41
jfalexvijay

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

MISE À JOUR janvier 2014

À partir 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.

49
Mark Granoff

AVCaptureMetaDataOutput - À partir de iOS 7

Analysez les codes UPC, les codes QR et les codes à barres de toutes les variétés avec AVCaptureMetaDataOutput, une nouvelle version d'iOS 7. Configurez-la en tant que sortie d'une variable AVCaptureSession et implémentez la méthode captureOutput:didOutputMetadataObjects:fromConnection: 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
27
iGo

Essayez ZXingObjC fonctionne bien et est facile à intégrer.

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

3
Dejell

pour votre référence, vous pouvez utiliser webqr.com et sa bibliothèque, vous pouvez utiliser pour décoder le code QR et l'encodage également. Mais pour différents navigateurs comme Safari, Chrome, IE, Firefox, vous pouvez ajouter le plugin pour This. J'espère que cela vous aidera pleinement.

0
Ankit