wBarCodeReader 1.0.3

wBarCodeReader 1.0.3

Nik Dyonin 维护。



  • Nik Dyonin

BarCodeReader

一个轻量级库,允许在 iOS 设备上读取各种条形码类型。支持的条形码类型包含在 AVMetadataObject.ObjectType 中。

Chris Greening 的原始作品在此处提供: https://github.com/cgreening/BarCodeExample.

安装

Cocoapods

platform :ios, '12.0'
use_frameworks!

target 'YourTarget' do
  pod 'wBarCodeReader'
end

使用方法

Swift

class ViewController: UIViewController {
  @IBOutlet weak var scanButton: UIButton!
  @IBOutlet weak var resultLabel: UILabel!
  
  override func viewDidLoad() {
    super.viewDidLoad()
    scanButton.addTarget(self, action: #selector(startScanner), for: .touchUpInside)
  }
  
  @objc private func startScanner() {
    let v = CMGViewController()
    v.delegate = self
    present(v, animated: true, completion: nil)
  }
}

extension ViewController: CMGViewControllerDelegate {
  func didScan(result: String) {
    resultLabel.text = "Scanned: \(result)"
  }
  
  func didFail(error: Error) {
    let error = error as NSError
    
    dismiss(animated: true) { [weak self] in
      let alert = UIAlertController(title: error.localizedDescription, message: error.localizedRecoverySuggestion, preferredStyle: .alert)
      alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
      self?.present(alert, animated: true, completion: nil)
    }
  }
  
  func dataTypes() -> [AVMetadataObject.ObjectType] {
    return [.qr]
  }
}

Objective-C

- (void)startScan {
  CMGViewController *v = [[CMGViewController alloc] init];
  v.delegate = self;
  v.modalPresentationStyle = UIModalPresentationFormSheet;
  [self presentViewController:v animated:true completion:nil];
}

#pragma mark - CMGViewControllerDelegate

- (void)didScanWithResult:(NSString *)result {
  DDLogDebug(@"Scanned code with result: %@", result);
}

- (void)didFailWithError:(NSError *)error {
  DDLogError(@"Failed to scan code with error: %@", error);
}

- (NSArray<AVMetadataObjectType> *)dataTypes {
  return @[AVMetadataObjectTypeQRCode];
}

许可证

BarCodeReader 以 BSD-2-Clause 许可证可用。有关更多信息,请参阅 LICENSE 文件。