iOS 12 Safari:有没有办法让基于网络的二维码扫描工作?
iOS 12 Safari: Is there a way to make web-based QR Scanning work?
有一些基于 Web 的 QR 扫描仪的工作示例,特别是 Instascan (repo) and JsQRScanner (repo)。这两个都在 Android 上完美运行。然而,在 iOS 12 和 iPhone 上的 Safari 上,示例和我的代码都严重失败,在视频源应该存在或根本没有的地方产生一个黑框。如果没有 mac,我无法调试它,因为如果我无法访问承诺对象,我将无法捕获 javascript 承诺。
我尝试了这两个库 and I even communicated with one of the developers,但日志会简化过程。如果没有合适的 Safari 工具,我无法生成这些日志。
有什么方法可以让 Safari 正常运行吗?
这是我的 JsQRScanner 代码的一部分。我还保留了我的旧 InstaScan 代码,以备不时之需。
/**
* Sets up the QR scanner.
* this function will be called when JsQRScanner is ready to use
* @see https://github.com/jbialobr/JsQRScanner
*/
function JsQRScannerReady() {
try {
//create a new scanner passing to it a callback function that will be invoked when
//the scanner succesfully scan a QR code
var jbScanner = new JsQRScanner(scanEvent);
setResult("Constructed JsQRScanner object.");
//reduce the size of analyzed images to increase performance on mobile devices
jbScanner.setSnapImageMaxSize(300);
setResult("setSnapImageMaxSize completed.");
var scannerParentElement = document.getElementById("videoBoundingBox");
if (scannerParentElement) {
//append the jbScanner to an existing DOM element
jbScanner.appendTo(scannerParentElement);
setResult("Appended jbScanner to div.");
}
} catch (e) {
setResult("Caught exception in the camera initialisation.");
setResult(e.message);
}
setResult("initialisation complete.");
}
extensive conversation with the developer of JsQRScanner 之后,我们能够在 Safari 上进行二维码扫描。
有一些基于 Web 的 QR 扫描仪的工作示例,特别是 Instascan (repo) and JsQRScanner (repo)。这两个都在 Android 上完美运行。然而,在 iOS 12 和 iPhone 上的 Safari 上,示例和我的代码都严重失败,在视频源应该存在或根本没有的地方产生一个黑框。如果没有 mac,我无法调试它,因为如果我无法访问承诺对象,我将无法捕获 javascript 承诺。
我尝试了这两个库 and I even communicated with one of the developers,但日志会简化过程。如果没有合适的 Safari 工具,我无法生成这些日志。
有什么方法可以让 Safari 正常运行吗?
这是我的 JsQRScanner 代码的一部分。我还保留了我的旧 InstaScan 代码,以备不时之需。
/**
* Sets up the QR scanner.
* this function will be called when JsQRScanner is ready to use
* @see https://github.com/jbialobr/JsQRScanner
*/
function JsQRScannerReady() {
try {
//create a new scanner passing to it a callback function that will be invoked when
//the scanner succesfully scan a QR code
var jbScanner = new JsQRScanner(scanEvent);
setResult("Constructed JsQRScanner object.");
//reduce the size of analyzed images to increase performance on mobile devices
jbScanner.setSnapImageMaxSize(300);
setResult("setSnapImageMaxSize completed.");
var scannerParentElement = document.getElementById("videoBoundingBox");
if (scannerParentElement) {
//append the jbScanner to an existing DOM element
jbScanner.appendTo(scannerParentElement);
setResult("Appended jbScanner to div.");
}
} catch (e) {
setResult("Caught exception in the camera initialisation.");
setResult(e.message);
}
setResult("initialisation complete.");
}
extensive conversation with the developer of JsQRScanner 之后,我们能够在 Safari 上进行二维码扫描。