扫描function在Action Extension上不起作用(没有相机开启扫描)

我能够实现button,tableview,textfields,开关…所有在ActionExtension工作正常

“扫描function”在“动作扩展”中不起作用(不扫描相机)。 下面我分享我的扫描代码迅速和截图我的扩展

声明:

var scannedBarcode = NSString(string: "") var scannedMetadataOutput = AVCaptureMetadataOutput() var gCaptureMetadataOutput = AVCaptureMetadataOutput() var _prevLayer = AVCaptureVideoPreviewLayer() var _session = AVCaptureSession() 

扫描button操作代码:

  @IBAction func scanExtenAction(sender: AnyObject) { scanExtAction.enabled = false var error:NSError? = nil //let _input = (try! AVCaptureDeviceInput.deviceInputWithDevice(gCaptureDevice)) let _input = (try! AVCaptureDeviceInput.init(device: gCaptureDevice)) if _session.canAddInput(_input) { _session.addInput(_input) } var _output = AVCaptureMetadataOutput() gCaptureMetadataOutput.setMetadataObjectsDelegate(self, queue: dispatch_get_main_queue()) if _session.canAddOutput(gCaptureMetadataOutput) { _session.addOutput(gCaptureMetadataOutput) } // gCaptureMetadataOutput.metadataObjectTypes = gCaptureMetadataOutput.availableMetadataObjectTypes gCaptureMetadataOutput.metadataObjectTypes = gCaptureMetadataOutput.availableMetadataObjectTypes _prevLayer = AVCaptureVideoPreviewLayer(layer: _session) as AVCaptureVideoPreviewLayer //_prevLayer.frame = self.view.bounds //_prevLayer.frame = CGRectMake( DEVICE_WIDTH * 0.10 , DEVICE_HEIGHT * 0.10, DEVICE_WIDTH * 0.8, DEVICE_HEIGHT * 0.4 ) _prevLayer.frame = CGRectMake(0 , 0, 280, 300 ) _prevLayer.cornerRadius = 10 _prevLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; self.view.layer.addSublayer(_prevLayer) _session.startRunning() } 

在这里输入图像说明

附加应用程序无法执行以下操作:

1.访问iOS设备上的摄像头或麦克风。

2.使用AirDrop接收数据(但可以使用AirDrop发送数据)。

3.执行长时间运行的后台任务。

4.使用NS_EXTENSION_UNAVAILABLEmacros或类似的不可用macros,或任何API在不可用的框架中使用标头文件中标记的任何API,例如EventKitHealthKit不适用于应用程序扩展。

5.访问共享应用程序对象,因此不能使用该对象上的任何方法

请参阅下面的链接了解更多信息: 链接