Javascript 使用ZXing条形码扫描仪将代码读入网页上的表单

Javascript 使用ZXing条形码扫描仪将代码读入网页上的表单,javascript,android,barcode-scanner,Javascript,Android,Barcode Scanner,我想将扫描结果发送到网页上的文本字段。我将所有内容都添加到需要从新URL中提取{CODE}并将其发送到页面的位置。(按照此处的说明操作:) 我遇到了两种解决方案,它们几乎达到了我想要的效果,但不完全达到,我将解释原因 解决方案#1:使用cookie 行为: 扫描后,打开“新建”选项卡,列出扫描的代码,并为用户提供确认或放弃结果的选项 在确认时,使用cookie将代码移植回原始页面 为什么它对我不起作用: 我想跳过确认页。如果扫描不正确,用户将再次扫描 需要internet连接才能加载新页面。如果

我想将扫描结果发送到网页上的文本字段。我将所有内容都添加到需要从新URL中提取{CODE}并将其发送到页面的位置。(按照此处的说明操作:)

我遇到了两种解决方案,它们几乎达到了我想要的效果,但不完全达到,我将解释原因

解决方案#1:使用cookie

行为:

  • 扫描后,打开“新建”选项卡,列出扫描的代码,并为用户提供确认或放弃结果的选项
  • 在确认时,使用cookie将代码移植回原始页面
  • 为什么它对我不起作用:

  • 我想跳过确认页。如果扫描不正确,用户将再次扫描
  • 需要internet连接才能加载新页面。如果可能的话,我希望解决方案是离线兼容的(就像一个适当的USB条形码阅读器)
  • 解决方案#2:使用hashchange

    行为:

  • 使用URL哈希中的更改来捕获代码
  • 为什么它对我不起作用:

  • 根据我自己和其他人的经验,这个解决方案在Chrome for Android中不起作用
  • 是否有一种方法可以收集扫描的代码(通过从网页调用条形码扫描仪应用程序启动),并将其填充到该网页上的表单中,理想情况下无需弹出其他窗口或需要internet连接

    请注意:我是新手。PHP完全让我不知所措,我不知道如何构建数据库,我只知道AJAX的基础知识。因此,如果您能详细解释,我们将不胜感激

    谢谢你的帮助


    Andrew

    编辑:有关最新答案,请参阅

    在Android 2.2到5.01中,我已经成功地执行了数万次这个小代码片段。它在默认浏览器和Chrome中运行良好。它在Firefox中不起作用;我还在调查原因

    window.onhashchange=function(){
            var hash = window.location.hash.substr(1);
            if (hash != "") {
                window.location.hash = "";
                processBarcode(unescape(hash));
            }
    }
    function processBarcode(code){
        //do what you need here.
    }
    function getScan(){
        var href = window.location.href;
        var ptr = href.lastIndexOf("#");
        if (ptr > 0) {
            href = href.substr(0, ptr);
        }
        window.location.href = "zxing://scan/?ret=" + escape(href +    "#{CODE}");
    }
    

    这太棒了。我使用的是这个函数的一个微小变化,除了我在
    getScan()
    上使用了一个函数参数,这样我就可以重用
    getScan(code=>{/*函数和扫描的代码*/})在整个程序中,但在找到这个答案之前,我有一些严重的头痛。很好,谢谢!别忘了查看顶部链接的另一个。。。它更健壮。