iOS實(shí)現(xiàn)二維碼的掃描功能
更新時間:2015年07月31日 10:36:40 投稿:hebedich
本文給大家介紹的是iOS 原生態(tài)API實(shí)現(xià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)航欄及下拉分類菜單
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)頂部標(biāo)簽式導(dǎo)航欄及下拉分類菜單的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-03-03
iOS實(shí)現(xiàn)一個可以在屏幕中自由移動的按鈕
經(jīng)常在手機(jī)上看到可以隨意移動的按鈕,正巧最近工作遇到了這個需求,索性就寫一個,下面這篇文章主要給大家介紹了利用iOS實(shí)現(xiàn)一個可以在屏幕中自由移動的按鈕的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07
iOS tableView上拉刷新顯示下載進(jìn)度的問題及解決辦法
這篇文章主要介紹了 iOS tableView上拉刷新顯示下載進(jìn)度的問題及解決辦法,需要的朋友可以參考下2017-03-03
Objective-C中NSNumber與NSDictionary的用法簡介
這篇文章主要介紹了Objective-C中NSNumber與NSDictionary的用法簡介,雖然Objective-C即將不再是iOS的主流開發(fā)語言...well,需要的朋友可以參考下2015-09-09

