用于Webapps的ZXing条码扫描器

时间:2011-11-17 16:44:09

标签: javascript android webview barcode zxing

我正在尝试使用http://zxing.appspot.com/scan从WebApp调用条形码扫描程序,但我无法让它工作。即使在不必要地更新并重新安装之后,它所做的只是显示默认的zxing网页,要求我在手机上安装条形码扫描仪。我错过了什么吗?

这是我用来调用ZXing Scanner的javascript。出于测试目的,我甚至尝试制作一个简单的HTML超链接,但没有成功。我正在使用Android的WebView来加载应用。

window.location.href = 
"http://zxing.appspot.com/scan?ret=http://192.168.1.33:3000/pallet/{CODE}/change_position/"+positionId+"&SCAN_FORMATS=CODE_39";

这是条形码扫描仪的清单,通过浏览器识别并触发扫描仪:

<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="http" android:host="zxing.appspot.com" android:path="/scan"/>
</intent-filter>

有趣的是,http://www.google.com/m/products/scan,做同样的事情,完美地运作。任何帮助或想法都非常欢迎!非常感谢!

5 个答案:

答案 0 :(得分:2)

看起来您正在向本地网络上的图像发送URL(192.168 ... IP地址),zxing.appspot.com将无法通过互联网访问。

答案 1 :(得分:1)

我想我对项目邮件列表提出了一些想法,但还有另一个好主意:

您确定没有“保存”您在浏览器中处理此链接的偏好吗?例如,当您选择应用程序时,通常会询问您是否要永久使用该应用程序来打开这种类型的链接或意图。也许你只为这个链接和浏览器做了。转到所有这些应用的应用和“清除默认值”,然后重试。

答案 2 :(得分:1)

是这样触发它:

zxing://scan/?ret=http://192.168.2.9/stock/add.php?barcode={CODE}

答案 3 :(得分:0)

它适用于默认的Android浏览器,但不适用于我的谷歌浏览器

答案 4 :(得分:0)

只需使用Angular 2+应用程序中的HTML锚元素共享此输入,即可:

  1. 链接的后半部分需要进行urlencode,因此只需使用

 this.callbackUrl = encodeURIComponent(`${currentURL}{CODE}&SCAN_FORMATS=Code 39`);
 this.totalBarCodeUrl = `http://zxing.appspot.com/scan?ret=${this.callbackUrl}`;

  1. HTML类似于:

 <a [href]="totalBarCodeUrl"></a>