iOS實(shí)現(xiàn)二維碼的掃描功能
更新時(shí)間:2015年07月31日 10:36:40 投稿:hebedich
本文給大家介紹的是iOS 原生態(tài)API實(shí)現(xiàn)二維碼的掃描功能,非常簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。
直接上代碼,就不多廢話了
// // ViewController.m // QRCode // // Created by chenchen on 15/7/30. // Copyright (c) 2015年 BSY. All rights reserved. // #import <AVFoundation/AVFoundation.h> #import "ViewController.h" @interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate> @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]; //設(shè)置掃碼支持的編碼格式(如下設(shè)置條形碼和二維碼兼容) [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 *)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); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
您可能感興趣的文章:
相關(guān)文章
iOS實(shí)現(xiàn)頂部標(biāo)簽式導(dǎo)航欄及下拉分類(lèi)菜單
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)頂部標(biāo)簽式導(dǎo)航欄及下拉分類(lèi)菜單的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03iOS實(shí)現(xiàn)一個(gè)可以在屏幕中自由移動(dòng)的按鈕
經(jīng)常在手機(jī)上看到可以隨意移動(dòng)的按鈕,正巧最近工作遇到了這個(gè)需求,索性就寫(xiě)一個(gè),下面這篇文章主要給大家介紹了利用iOS實(shí)現(xiàn)一個(gè)可以在屏幕中自由移動(dòng)的按鈕的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-07-07iOS tableView上拉刷新顯示下載進(jìn)度的問(wèn)題及解決辦法
這篇文章主要介紹了 iOS tableView上拉刷新顯示下載進(jìn)度的問(wèn)題及解決辦法,需要的朋友可以參考下2017-03-03ios動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)的區(qū)別
這篇文章主要介紹了ios動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)的區(qū)別,幫助大家更好的理解和學(xué)習(xí)使用ios開(kāi)發(fā),感興趣的朋友可以了解下2021-04-04Objective-C中NSNumber與NSDictionary的用法簡(jiǎn)介
這篇文章主要介紹了Objective-C中NSNumber與NSDictionary的用法簡(jiǎn)介,雖然Objective-C即將不再是iOS的主流開(kāi)發(fā)語(yǔ)言...well,需要的朋友可以參考下2015-09-09