1. 程式人生 > >iOS 二維碼掃描

iOS 二維碼掃描

原生二維碼掃描

個人是比較支援用原生二維碼掃描的,這裡也就僅僅以原生二維碼掃面為範例

1.原生掃描用到的幾個類

@property (strong,nonatomic)AVCaptureDevice * device;
@property (strong,nonatomic)AVCaptureDeviceInput * input;
@property (strong,nonatomic)AVCaptureMetadataOutput * output;
@property (strong,nonatomic)AVCaptureSession * session;
@property
(strong,nonatomic)AVCaptureVideoPreviewLayer * preview;

2.在viewDidLoad裡建立它們

// Device
_device = [AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];

// Input
_input = [AVCaptureDeviceInputdeviceInputWithDevice:self.deviceerror:nil];

// Output
_output = [[AVCaptureMetadataOutputalloc]init];
[_outputsetMetadataObjectsDelegate:selfqueue:dispatch_get_main_queue()];

// Session
_session = [[AVCaptureSessionalloc]init]; [_sessionsetSessionPreset:AVCaptureSessionPresetHigh];

連線輸入和輸出

if ([_sessioncanAddInput:self.input])
{
    [_sessionaddInput:self.input];
}

if ([_sessioncanAddOutput:self.output])
{
    [_sessionaddOutput:self.output];
}

設定條碼型別

_output.metadataObjectTypes 
=@[AVMetadataObjectTypeQRCode];

新增掃描畫面

_preview =[AVCaptureVideoPreviewLayerlayerWithSession:_session];
_preview.videoGravity =AVLayerVideoGravityResizeAspectFill;
_preview.frame =self.view.layer.bounds;
[self.view.layerinsertSublayer:_previewatIndex:0];

開始掃描

[_sessionstartRunning];

最後實現協議AVCaptureMetadataOutputObjectsDelegate
- (void)captureOutput:(AVCaptureOutput )captureOutput didOutputMetadataObjects:(NSArray )metadataObjects fromConnection:(AVCaptureConnection *)connection
{
NSString *stringValue;
if ([metadataObjectscount] >0){
//停止掃描
[_sessionstopRunning];
AVMetadataMachineReadableCodeObject * metadataObject = [metadataObjectsobjectAtIndex:0];
stringValue = metadataObject.stringValue;
}
}

相關推薦

iOS掃描

ont 代碼 畫面 告訴 nds ima dds rst bounds 每一步:添加 AVFoundation.framework 庫 General > Linked Frameworks and Libraries 第二步:代碼集成 #import "V

iOS 掃描 Swift

實現相機掃描二維碼, 相簿選取圖片識別二維碼     一. 匯入 framework import AVFoundation//二維碼掃描 import CoreImage//二維碼識別 import AudioToolbox//系統音效 二. 服從協議 AV

iOS 掃描 原生版

     iOS掃描有很多非常成熟的第三方應用,從iOS7以後開始支援原生掃描二維碼,而且效率非常高,整合也很簡單.下面我們來寫下原生掃描方法.直接上圖.swfit 版本. var device: AVCaptureDevice!

iOS 掃描-中間透明區域以及掃描區域設定

1. 二維碼掃描 在呼叫二維碼掃描之前,首先匯入標頭檔案:AVFoundation/AVFoundation.h,遵循其協議:AVCaptureMetadataOutputObjectsDelegate。並且定義所需要的device、session、input

iOS 掃描(你想要的都在這裡了)

#pragma mark - imageToTransparent void ProviderReleaseData (void *info, const void *data, size_t size){ free((void*)data); } + (UIImage*)imageBlackToTransp

iOS 掃描登入

二維碼掃描方面,其實客戶端能做的事情相對有限,基本上只需要完成掃描二維碼,獲取二維碼中的字串然後將該字串以及使用者id發給後端處理就好了。 二維碼掃描登入基本原理 首先介紹一下掃描登入的基本流程。 網頁向伺服器請求二維碼生成。 伺服器生成一個qr

iOS掃描/識別

一直以為二維碼功能比較簡單,  從來沒有放在心上過,  由於公司專案需要這個功能,  也算是第一次真正去做二維碼的東西.  從網上看別人的部落格很多都是寫的比較碎片, 沒有一個能做的比較完整的,  今天我的這個模組做完, 索性總結一下吧, 希望更多的人少走彎路 網上很多二維

iOS掃描 原生API 原始碼Demo 2016最新版本 簡單易用

iOS中的二維碼掃描,ZXing, ZBar庫不更新了,本博主,所以今天寫了一個二維碼掃描庫,是最新版本的,相容iOS7.0及以後的系統,主要用Objective-C寫的現測試已完美通過Xcode 7.

iOS 掃描

原生二維碼掃描 個人是比較支援用原生二維碼掃描的,這裡也就僅僅以原生二維碼掃面為範例 1.原生掃描用到的幾個類 @property (strong,nonatomic)AVCaptureDevice * device; @property (stron

搭建iOS掃描安裝OTA伺服器

搭建Web伺服器 因為本文主要是介紹怎麼實現OTA的安裝,所以伺服器搭建部分只做基本的指導(不過會詳細說明怎麼配置HTTPS),詳細搭建方法還請大家自行Google^_^。 好吧,iOS開發都是用的Mac OS X,而Mac OS X中正好自帶了Apache

IOS 使用 ZbarSDK 掃描

fill 下載 src uitext void del symbols per super 1. 下載SDK https://github.com/bmorton/ZBarSDK 2. 引用到項目中 3. 添加引用 4. AppDelegate中添加下面代碼 5.

iOS 原生掃描

oca lac sig mediatype gate 5.0 項目 machine lec 直接上項目代碼 首先檢查相機權限 AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusFo

iOS原生掃描(可以指定有效區域)

寫這篇文章的主要原因不是展示如何使用 AVFoundation 來進行二維碼掃描,更主要的是限制掃描二維碼的範圍。(因為預設的是全屏掃描) 專案遇到掃描二維碼的功能需求,這裡我放棄了使用三方庫,而採用了蘋果原生的掃描。 原生的好處就是掃描特別快效率特別高,但是遇到一個

iOS 原生掃描(可限制掃描區域)

寫這篇文章的主要原因不是展示如何使用 AVFoundation   來進行二維碼掃描,更主要的是限制掃描二維碼的範圍。(因為預設的是全屏掃描) 專案遇到掃描二維碼的功能需求,這裡我放棄了使用三方庫,而採用了蘋果原生的掃描。 原生的好處就是掃描特別快效率特別高,但是遇到一個問

iOS開發——系統原生的掃描

對於現在的App應用來說,掃描二維碼這個功能是再正常不過的一個功能了,在早期開發這些功能的時候,大家或多或少的都接觸過ZXing和ZBar這類的第三方庫,但從iOS7以後,蘋果就給我們提供了系統原生的API來支援我們掃描獲取二維碼,ZXing和ZBar在使用中或多或少有不盡如人意的地方,再之停止更新很久了

iOS開發(OC)——掃描(原生API,支援條形碼)

今天,我為大家介紹一下iOS原生API實現二維碼和條形碼掃描功能 主要程式碼如下 //獲取攝像裝置 AVCaptureDevice * device = [AVCaptureDevi

iOS掃描 全屏顯示區域性掃描

參考網址 http://www.jianshu.com/p/3fb24fc7b415 全屏顯示區域性掃描一直有問題 設定RectOfInterest也有問題,方法走,就是效果達不到 發現新增要寫在 中間     [self.view.layer insertSublay

iOS_掃描iOS自帶)

iOS7開始,不需要第三方也能進行二維碼掃描了。 之前用過ZBar這個第三方包,後來iOS版本高了用不了,貌似我下的那個包只支援32位。 應該還有其他版本的支援,只是後來沒用到就沒去找了。 今天研究了一下系統自帶的二維碼掃描,掃描速度很快。 肚子餓,節約點時間直接上程式碼

[IOS開發]js與WKwebview互動Demo(調取掃描

#pragmamark-WKWebDelegate -(void)userContentController:(WKUserContentController*)userContentContr

react-native-smart-barcode目前最好用的掃描元件(IOS、android)

最近在製作React-Native專案的時候,條碼識別給我們整個專案帶了不少麻煩,幾款主流的條碼識別元件都不是特別好用,使用者體驗比較差,比如二維碼識別速度慢、掃描頁面十分卡頓用等一系列問題,後來在網上無意間找到一個非常好用的二維碼掃描元件——react-native-smart-barcode,這個元件是