許多應用程序都可以掃二維碼這個功能,iOS中的掃碼主要是通過使用iOS設備的后置攝像頭,把這個功能實現了,下面就讓武林技術頻道小編帶大家一起來了解一下iOS中實現二維碼的掃描功能的效果展示,一起來了解一下吧!
//// ViewController.m// QRCode//// Created by chenchen on 15/7/30.// Copyright (c) 2015年 BSY. All rights reserved.//#import#import "ViewController.h"@interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; 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,AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code]]; [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()]; [session addOutput:output]; [session startRunning];} #pragma mark - AVCaptureMetadataOutputObjectsDelegate- (void)captureOutput:(AVCaptureOutput *)captureOutputdidOutputMetadataObjects:(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);}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.} @end
上文是關于iOS中實現二維碼的掃描功能的效果展示,相信大家都有了一定的了解,想要了解更多的相關介紹,請繼續關注武林技術頻道!
新聞熱點
疑難解答