Считыватель QR-кодов для iPhone - PullRequest
42 голосов
/ 05 мая 2011

Я хочу создать приложение для чтения QR-кодов.

С помощью какой библиотеки я могу создать свое приложение?

Примечание: Я искал в Google. Всегда получаю zxing . Я скачал проект zxing. Но проблема в том, Я запускаю приложение. Но он читает только Штрих-коды . Нет возможности прочитать QR-код.

Скажите, пожалуйста, как это сделать ...

Заранее спасибо.

Ответы [ 4 ]

49 голосов
/ 05 мая 2011

ZBarSDK - еще один вариант.Очень способная библиотека.

ОБНОВЛЕНИЕ Январь 2014

Начиная с iOS7, AVCaptureDevice теперь включает возможность считывать штрих-коды (всех видов) и возвращать читабельный человекзначение.Если вы нацелены на iOS7 +, это путь.Конечно, ZBarSDK по-прежнему отлично подходит для поддержки до iOS7.

27 голосов
/ 09 октября 2013

AVCaptureMetaDataOutput - Начиная с iOS 7

Сканирование UPC, QR-кодов и штрих-кодов всех разновидностей с помощью AVCaptureMetaDataOutput, нового для iOS 7. Все, что вам нужно сделать, это настроить его как вывод AVCaptureSession и соответственно реализовать метод captureOutput:didOutputMetadataObjects:fromConnection::

 @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 поддерживает каждый код, о котором вы слышали (и, возможно, несколько, которых у вас нет):

AVMetadataObjectTypeUPCECode
AVMetadataObjectTypeCode39Code
AVMetadataObjectTypeCode39Mod43Code
AVMetadataObjectTypeEAN13Code
AVMetadataObjectTypeEAN8Code
AVMetadataObjectTypeCode93Code
AVMetadataObjectTypeCode128Code
AVMetadataObjectTypePDF417Code
AVMetadataObjectTypeQRCode
AVMetadataObjectTypeAztecCode
3 голосов
/ 05 марта 2013

Попробуйте ZXingObjC отлично работает и легко интегрируется.

Также вы можете определить размер окна сканера внутри вашего представления.

0 голосов
/ 19 июля 2016

для справки вы можете использовать webqr.com , и это библиотека, которую вы можете использовать для декодирования QR-кода и кодирования. Но для разных браузеров, таких как Safari, Chrome, IE, Firefox, вы можете добавить плагин для этого. Надеюсь, что это поможет вам полностью.

...