Устройство чтения QR-кода для iPhone
Я хочу создать приложение для чтения QR-кода.
С помощью какой библиотеки я могу создать свое приложение?
Примечание. Я искал в google. Всегда получаю zxing. Я загрузил проект zxing. Но проблема в том, Я запускаю приложение. Но он читает только Barcodes. Нет возможности читать QR-код.
Скажите, пожалуйста, как это сделать...
Спасибо в Advance.
Ответы
Ответ 1
ZBarSDK - еще один вариант. Очень способная библиотека.
ОБНОВЛЕНИЕ Январь 2014
Начиная с iOS7, AVCaptureDevice
теперь включает в себя возможность читать штрих-коды (всех видов) и возвращать читаемое человеком значение. Если вы ориентируетесь на iOS7 +, это путь. ZBarSDK по-прежнему отлично подходит для поддержки до iOS7.
Ответ 2
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
Попробуйте ZXingObjC работать с большим и легким для интеграции.
Кроме того, вы можете определить размер окна сканера внутри вашего представления.
Ответ 4
для справки вы можете использовать webqr.com, а также библиотеку, которую вы можете использовать для декодирования QR-кода и кодирования. Но для разных браузеров, таких как сафари, Chrome, IE, Firefox, вы можете добавить плагин для этого. Надеюсь, это поможет вам полноценно.