diff --git a/src/android/QRScanner.java b/src/android/QRScanner.java index f2e37d7d..a17e1808 100755 --- a/src/android/QRScanner.java +++ b/src/android/QRScanner.java @@ -24,7 +24,7 @@ import org.json.JSONObject; import android.hardware.Camera; import android.provider.Settings; -import android.support.v4.app.ActivityCompat; +import androidx.core.app.ActivityCompat; import android.view.ViewGroup; import android.widget.FrameLayout; @@ -619,7 +619,7 @@ private void show(final CallbackContext callbackContext) { this.cordova.getActivity().runOnUiThread(new Runnable() { @Override public void run() { - webView.getView().setBackgroundColor(Color.argb(1, 0, 0, 0)); + webView.getView().setBackgroundColor(Color.TRANSPARENT); showing = true; getStatus(callbackContext); } diff --git a/src/android/qrscanner.gradle b/src/android/qrscanner.gradle index df682e76..6188e342 100644 --- a/src/android/qrscanner.gradle +++ b/src/android/qrscanner.gradle @@ -3,8 +3,8 @@ repositories { } dependencies { - compile 'com.journeyapps:zxing-android-embedded:3.3.0' - compile 'com.android.support:appcompat-v7:23.1.0' + implementation 'com.journeyapps:zxing-android-embedded:3.3.0' + implementation 'com.android.support:appcompat-v7:23.1.0' } android { diff --git a/src/ios/QRScanner.swift b/src/ios/QRScanner.swift index d98099cb..d88fdb33 100644 --- a/src/ios/QRScanner.swift +++ b/src/ios/QRScanner.swift @@ -133,13 +133,17 @@ class QRScanner : CDVPlugin, AVCaptureMetadataOutputObjectsDelegate { if (captureSession?.isRunning != true){ cameraView.backgroundColor = UIColor.clear self.webView!.superview!.insertSubview(cameraView, belowSubview: self.webView!) - let availableVideoDevices = AVCaptureDevice.devices(for: AVMediaType.video) - for device in availableVideoDevices { - if device.position == AVCaptureDevice.Position.back { - backCamera = device + let session = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: AVMediaType.video, position: .unspecified) + let cameras = session.devices.compactMap { $0 } + for camera in cameras { + if camera.position == .front { + self.frontCamera = camera } - else if device.position == AVCaptureDevice.Position.front { - frontCamera = device + if camera.position == .back { + self.backCamera = camera + try camera.lockForConfiguration() + camera.focusMode = .continuousAutoFocus + camera.unlockForConfiguration() } } // older iPods have no back camera @@ -197,8 +201,9 @@ class QRScanner : CDVPlugin, AVCaptureMetadataOutputObjectsDelegate { } @objc func makeOpaque(){ - self.webView?.isOpaque = false - self.webView?.backgroundColor = UIColor.clear + self.webView?.isOpaque = true + self.webView?.backgroundColor = UIColor.white + self.webView?.scrollView.backgroundColor = UIColor.white } @objc func boolToNumberString(bool: Bool) -> String{ @@ -292,6 +297,7 @@ class QRScanner : CDVPlugin, AVCaptureMetadataOutputObjectsDelegate { @objc func show(_ command: CDVInvokedUrlCommand) { self.webView?.isOpaque = false self.webView?.backgroundColor = UIColor.clear + self.webView?.scrollView.backgroundColor = UIColor.clear self.getStatus(command) }