javascript - iOS 12 Safari:有没有办法让基于 Web 的 QR 扫描工作?
问题描述
有一些基于 Web 的 QR 扫描仪的工作示例,特别是Instascan ( repo ) 和JsQRScanner ( repo )。这两种方法都可以在 Android 上完美运行。然而,在 iPhone 上带有 iOS 12 的 Safari 上,示例和我的代码都严重失败,产生了一个黑匣子,视频源应该是或根本没有。如果没有 mac,我无法调试它,因为如果我无法访问 Promise 对象,我将无法捕获 javascript Promise。
我尝试了这两个库,甚至与其中一位开发人员进行了交流,但日志会简化流程。如果没有 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.");
}
解决方案
在与JsQRScanner的开发人员进行了广泛的交谈后,我们能够让 QR 扫描在 Safari 上运行。
推荐阅读
- javascript - 无法从 api 访问数据
- python - 如何简化针对列的平均值评估单元格的过程
- c++ - 当 glIsTexture 有用时
- javascript - 在 Flatlist React Native 中解析 JSON 对象
- php - 来自标头重定向 PHP 的最小延迟
- swiftui - swiftui中的Safari视图显示空视图
- c++ - 如何使用 GL_LIGHT1 获得更亮的光泽?
- html - 如何在 iPhone 上的 Macbook 上打开 html 和 css 文件?
- javascript - 如何更快地推动阵列中的阵列位置
- python - 将原始数据转换为熊猫数据框?