ptureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection {
if (metadataObjects.count > 0) {
AVMetadataMachineReadableCodeObject *metadataObject = metadataObjects.firstObject;
// 獲取掃描到的字符串內容
NSString *stringValue = metadataObject.stringValue;
// 調用代理,將掃描結果傳給調用者
if ([self.delegate respondsToSelector:@selector(scanResult:)]) {
[self.delegate scanResult:stringValue];
}
}
}
“`
2、Android實現方法
對于Android開發者,也可以利用系統自帶的相機接口實現二維碼的掃描功能。首先需要在gradle配置中添加zxing庫依賴,如下:
“`
compile ‘com.google.zxing:core:3.2.1’
compile ‘com.journeyapps:zxing-android-embedded:3.6.0’
“`
然后創建一個CaptureManager對象來管理相機、預覽和解碼器等對象,之后就可以實現二維碼的掃描功能了。代碼如下:
“`
// 創建 CaptureManager 對象
mCaptureManager = new CaptureManager(getActivity(), mBarcodeView);
mCaptureManager.initializeFromIntent(getActivity().getIntent(), savedInstanceState);
mCaptureManager.decode();
“`
值得注意的是,zxing庫提供了默認的掃描UI界面,如果不需要使用自定義的掃描界面,可以直接使用默認模板。
三、總結
本文介紹了二維碼掃描的原理及實現方法,在實現時我們可以根據具體的需求來選擇適合的實現方式,這樣可以在開發中提高效率,并提供更好的使用體驗。