首页 > 其他分享 >SwiftUI 调用相机扫码

SwiftUI 调用相机扫码

时间:2024-10-06 19:47:11浏览次数:18  
标签:扫码 BarcodeScannerView UIViewControllerRepresentable parent captureSession 相机 Swi

在 SwiftUI 中调用相机进行扫码(二维码、条形码等),可以通过使用 AVCaptureSession 和 AVCaptureMetadataOutput 实现。这可以通过 UIViewControllerRepresentable 来包装 AVCaptureSession,然后与 SwiftUI 结合。详见代码示例。

调用流程

  1. 创建一个使用 AVCaptureSession 来处理相机输入和元数据输出的视图。
  2. 使用 UIViewControllerRepresentable 包装该视图并将其集成到 SwiftUI 中。
  3. 处理扫描到的条形码或二维码,并将其结果传递回 SwiftUI。

组件代码

struct BarcodeScannerView: UIViewControllerRepresentable {
    class Coordinator: NSObject, AVCaptureMetadataOutputObjectsDelegate {
        var parent: BarcodeScannerView
        var captureSession: AVCaptureSession?

        init(parent: BarcodeScannerView, captureSession: AVCaptureSession?) {
            self.parent = parent
            self.captureSession = captureSession
        }

        func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) {
            if le

标签:扫码,BarcodeScannerView,UIViewControllerRepresentable,parent,captureSession,相机,Swi
From: https://blog.csdn.net/weixin_41863236/article/details/142730806

相关文章