首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个QR阅读器函数的输出是什么?

这个QR阅读器函数的输出是什么?
EN

Stack Overflow用户
提问于 2019-10-22 15:53:02
回答 1查看 548关注 0票数 0

我目前正在尝试为我的Web应用程序创建一个二维码阅读器,但我无法确定我所采用的函数的输出位置。

我在这里使用本教程中的QR Reader:

https://www.sitepoint.com/create-qr-code-reader-mobile-website/

到目前为止,我可以打开手机的摄像头并拍摄二维码的照片。然后,该函数将处理图像,如果是有效的二维码,则在文本框中向我显示加密的字符串/链接。

下面是我在HTML上使用的代码:

代码语言:javascript
复制
<main class="content-wrapper">
    <div class="container-fluid">
        <input type=text class=qrcode-text>
        <label class=qrcode-text-btn>
            <input type=file accept="image/*" 
                             capture=environment 
                             onchange="openQRCamera(this); read();"
                             tabindex=-1>
                         </label>

<script>function openQRCamera(node) {
    var reader = new FileReader();
    reader.onload = function () {
        node.value = "";
        qrcode.callback = function (res) {
            if (res instanceof Error) {
                alert("No QR code found. Please make sure the QR code is within the 
camera's frame and try again.");
            } else {
                node.parentNode.previousElementSibling.value = res;
            }
        };
        qrcode.decode(reader.result);
    };
    reader.readAsDataURL(node.files[0]);
}
</script>
<script src="https://rawgit.com/sitepoint-editors/jsqrcode/master/src/qr_packed.js">
</script>

因此,这里的一切都在按预期工作。但是往前看,我想让我的二维码根据QR阅读器产生的字符串执行特定的操作。

例如,如果二维码捕获到“获胜者”,我希望弹出一个警报,祝贺用户。

然而,我没有成功地找到输出。

EN

回答 1

Stack Overflow用户

发布于 2019-10-22 16:04:42

我假设二维码的输出值是在qrcode的回调函数中产生的,并作为res参数传递,如下所示:

qrcode.callback = function (res) {

此外,从您给出的网站上,它声明当读取二维码完成时,它将运行回调函数:

一旦FileReader读取完文件,我们就会给QR库分配一个回调函数,并将文件内容发送给该库的解码函数。该库将调用我们的回调,并返回一个错误对象或以字符串形式返回二维码的值。

当没有错误时,输出将是res参数。我已经修改了您的代码,如果读取成功,只需在更改文本值之前添加alert(res)即可弹出该值:

代码语言:javascript
复制
<main class="content-wrapper">
    <div class="container-fluid">
        <input type=text class=qrcode-text>
        <label class=qrcode-text-btn>
            <input type=file accept="image/*" 
                             capture=environment 
                             onchange="openQRCamera(this); read();"
                             tabindex=-1>
                         </label>

<script>function openQRCamera(node) {
    var reader = new FileReader();
    reader.onload = function () {
        node.value = "";
        qrcode.callback = function (res) {
            if (res instanceof Error) {
                alert("No QR code found. Please make sure the QR code is within the 
camera's frame and try again.");
            } else {
                alert(res);
                node.parentNode.previousElementSibling.value = res;
            }
        };
        qrcode.decode(reader.result);
    };
    reader.readAsDataURL(node.files[0]);
}
</script>
<script src="https://rawgit.com/sitepoint-editors/jsqrcode/master/src/qr_packed.js">
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58499461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档