如何实现js 扫描二维码

最近在做一个项目,里面有扫描二维码的功能,
先说下项目,我是使用的amazeui+jQuery做的,所以可以用电脑访问,也可以用手机浏览器访问,不是做成的app,那么现在我想有个功能是能扫描二维码,并读出二维码中的信息就可以,请问用js如何实现呢?
注意:
必须是扫出来的,不是上传的二维码.
在手机浏览器必须能使用,如果电脑不行那就优雅退化下也可以.

如果有,
请帮忙贴出地址,顺便要是有demo就更好了,我这两天看了好多,也许是道行太浅,有的没例子,有的例子不清楚,所以希望路过的大牛帮帮忙 >0<

阅读 33.3k
5 个回答

经过了4天的苦苦挣扎,我来总结下我的解法:
1.http://cirocosta.github.io/qcode-decoder/ (fail)
这个工具在电脑上访问还是可以的,但是苹果手机上完全不支持打开摄像头,虽然安卓上面支持打开摄像头,但是很可惜在扫描解析结果回来的时候异常了,昨晚抓到了异常,有好几种不同的异常,没有找到解决办法,就只能放弃了.

2.唤起app http://gotoqr.com/scan/
这个只是一个思路,就是当手机浏览器访问页面的时候通过唤起手机上安装的扫码app,详细了解可以看下这个链接,写的很清楚,之所以我还是没用就是在考虑,一个网页却要依赖手机内部app,觉得别扭了些,不想依赖,所以我没有采取这个方法.

3.http://segmentfault.com/a/1190000004338678 (success)
这个人里面写的例子很清楚,在电脑上访问demo的时候是可以打开本地图片的,但是打不开电脑上的摄像头;在手机上访问例子的时候 会跟他文章里写的一样,询问你打开相机还是本地图片,但是昨晚试了小米手机,貌似没有摄像头这个选项,我继续研究下.遗憾的就是 没有扫描的效果,只能拍照上传,解析二维码.所以我只能优雅退化了~

4.输入商品码 (success)
最后一个方法,当我们在超市结账的时候一旦识别不出来二维码,结算人员会输入一个码以此来鉴别商品,所以我会做一个输入框,可以输入二维码下方的码.

以上就是我的解决方案了,过程尝试虽然比较多,但是都失败了,感谢大家的宝贵意见.

首先得用js访问到摄像头数据

没记错的花话html5浏览器都有个api叫getUserMedia?

然后,找个库解析二维码

第三方浏览器js扫描没用过。
简单想法:
1.在第三方浏览器带参数唤起你的app,进而在app里扫描。
2.app webview中提供浏览器对象,js调用原生函数。

最终还是原生扫描.
这样即能推广了你的app(因没安装app造成的唤起失败,就跳转到app下载)又简化了开发。

推荐问题
宣传栏