iOS二維碼的直接掃描的讀取

分享的內(nèi)容,大家看了后,不管有什么問題或者建議,都可以說出來,我都會一一做答,一起加油啦

我的下一篇 <<iOS從相冊讀取二維碼>>需要的話也可以借鑒,原理一樣

我的上一篇<<iOS 二維碼的生成>>也可以學(xué)習(xí)

一般公司業(yè)務(wù)中,二維碼的生成與獲取是同時進行的.比如我們公司做智能門鎖的,需求中就有,能夠分發(fā)藍牙鑰匙(通過二維碼), 以及掃描二維碼,導(dǎo)入鑰匙

如果想自己生成二維碼做測試,可以用網(wǎng)站:在線二維碼圖片生成器_二維碼掃描軟件下載_聯(lián)圖二維碼

測試數(shù)據(jù)格式可以是如下:{"validTo" : "2018-08-26 18:11:38","validFrom" : "2016-08-26 18:11:33", "openTimes" : 0,"name" : "藍牙鑰匙","mac" : "D5:CC:F1:13:92:7C"} ?注意:{}要帶上


代碼如下:

1.先自定義一個透明掃描框

2.在掃描頁面

//// 定義屬性如下:

@interface ZKScanViewController ()// 掃描二維碼的詳情頁面

@property (strong, nonatomic) AVAudioPlayer *beepPlayer;

@property (strong, nonatomic) CIDetector *detector;

@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; ?


///// 在viewDidLoad中

- (void)viewDidLoad {

[super viewDidLoad];

//[self viewDidAppear:YES];

[self UpDateUI];

_device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

// Input

_input = [AVCaptureDeviceInput deviceInputWithDevice:self.device error:nil];

// Output

_output = [[AVCaptureMetadataOutput alloc]init];

[_output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];

// Session

_session = [[AVCaptureSession alloc]init];

[_session setSessionPreset:AVCaptureSessionPresetHigh];

if ([_session canAddInput:self.input])

{

[_session addInput:self.input];

}

if ([_session canAddOutput:self.output])

{

[_session addOutput:self.output];

}

// Preview

_preview =[AVCaptureVideoPreviewLayer layerWithSession:_session];

_preview.videoGravity =AVLayerVideoGravityResizeAspectFill;

_preview.frame =self.view.layer.bounds;

[self.view.layer insertSublayer:_preview atIndex:0];

// 開始掃描

[_session startRunning];

}

// 直接掃描

#pragma mark AVCaptureMetadataOutputObjectsDelegate

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection

{

NSString *stringValue;

NSLog(@"----array%@",metadataObjects);

// 掃描到對象

if ([metadataObjects count] >0)

{

NSMutableArray *myMutableArray = [metadataObjects mutableCopy];

//停止掃描

[_session stopRunning];

AVMetadataMachineReadableCodeObject * metadataObject = [myMutableArray objectAtIndex:0];

stringValue = metadataObject.stringValue;

NSLog(@"---stringValue---%@",stringValue);

// 過濾

[self filterStr:stringValue];

NSError *error = nil;

NSDictionary *stringdic = [NSJSONSerialization JSONObjectWithData: [stringValue dataUsingEncoding:NSUTF8StringEncoding]

options: NSJSONReadingAllowFragments error:&error];

NSLog(@"-----stringdic----%@",stringdic);

NSLog(@"-----error----%@",error);

// 如果字典為空,彈出提示框

if (stringdic == nil) {

dispatch_async(dispatch_get_main_queue(), ^{

[self alertView];

});

[_coverView removeFromSuperview];

[_session startRunning];

return;

}

// 跳轉(zhuǎn)到下一頁面,傳值

ZKImportKeyViewController *keyInfoVC = [[ZKImportKeyViewController alloc]init];

keyInfoVC.scanResultDict = stringdic;

[self.navigationController pushViewController:keyInfoVC animated:YES];

[myMutableArray removeAllObjects];

}

}

////過濾空格等

- (void)filterStr:(NSString *)stringValue {

stringValue = [stringValue stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

stringValue = [stringValue stringByReplacingOccurrencesOfString:@"\r\n" withString:@""];

stringValue = [stringValue stringByReplacingOccurrencesOfString:@"\n" withString:@""];

stringValue = [stringValue stringByReplacingOccurrencesOfString:@"\t" withString:@""];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末商叹,一起剝皮案震驚了整個濱河市垃帅,隨后出現(xiàn)的幾起案子纠吴,更是在濱河造成了極大的恐慌,老刑警劉巖峻凫,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秦叛,死亡現(xiàn)場離奇詭異凡橱,居然都是意外死亡慰枕,警方通過查閱死者的電腦和手機呛踊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門砾淌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谭网,你說我怎么就攤上這事汪厨。” “怎么了愉择?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵劫乱,是天一觀的道長织中。 經(jīng)常有香客問我,道長衷戈,這世上最難降的妖魔是什么狭吼? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮殖妇,結(jié)果婚禮上刁笙,老公的妹妹穿的比我還像新娘。我一直安慰自己拉一,他們只是感情好采盒,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蔚润,像睡著了一般磅氨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嫡纠,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天烦租,我揣著相機與錄音,去河邊找鬼除盏。 笑死叉橱,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的者蠕。 我是一名探鬼主播窃祝,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼踱侣!你這毒婦竟也來了粪小?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤抡句,失蹤者是張志新(化名)和其女友劉穎探膊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體待榔,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡逞壁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了锐锣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腌闯。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖雕憔,靈堂內(nèi)的尸體忽然破棺而出绑嘹,到底是詐尸還是另有隱情,我是刑警寧澤橘茉,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布工腋,位于F島的核電站,受9級特大地震影響畅卓,放射性物質(zhì)發(fā)生泄漏擅腰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一翁潘、第九天 我趴在偏房一處隱蔽的房頂上張望趁冈。 院中可真熱鬧,春花似錦拜马、人聲如沸渗勘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旺坠。三九已至,卻和暖如春扮超,著一層夾襖步出監(jiān)牢的瞬間取刃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工出刷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留璧疗,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓馁龟,卻偏偏與公主長得像崩侠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子坷檩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • 今天項目需要做一個二維碼掃描却音,雖然有很多二維碼掃描的第三方可以用,但是考慮到項目中的需要淌喻,所以我放棄了使用三方庫僧家,...
    Billy_W閱讀 2,538評論 3 26
  • 1、為什么使用二維碼裸删? 在手機客戶端應(yīng)用里八拱,對二維碼的使用也比較多。常見的功能有物品信息查詢涯塔,登錄信息驗證肌稻,掃描登...
    方圓幾度閱讀 543評論 0 0
  • 自用-二維碼掃描模塊代碼 效果圖 直接上代碼 注釋寫的還算詳細(xì)-需要準(zhǔn)備下面的東西,其中preView是要顯示的樣...
  • 一、前言 最近在做一個關(guān)于掃描二維碼簽到的小東西匕荸,所以還是上來寫一篇關(guān)于二維碼的文章爹谭,網(wǎng)上也有一些掃描二維碼的框架...
    kim逸云閱讀 4,421評論 2 8
  • Lecture from 并發(fā):如人飲水,冷暖自知 Here is the summary: Multi-thre...
    pillowBalcony閱讀 466評論 0 48