最近项目需要引用扫条形码的需求,所以度娘了一下发现quaggajs比较好用,于是拿下来按照官方的文档配置运行。
但是后来上线测试发现ios不能打开摄像头,一打开就是黑屏,也没有提示说启用摄像头。
于是用前端最原始的方式,就是先用最简单的,用官方的demo,结果发现官方的其实也不行。
去StackOverflow搜索一下,结果发现很多人遇到这个情况,官方的github的issue也有很多人反馈。而且解决办法无非就是在video属性中加上autoplay,playsInline,muted这三个属性。如果用单页面去测试video是否兼容,在ios里面是没有问题的。但是代码到了quaggajs就不行,官方文档也说已经修复这个问题,也是上面的3个属性。
那究竟问题出现在哪里呢?
于是就运用前端在手机端的调试利器alert,结果发现原来有报错。代码如下:
上面的代码官方有demo,所以不多说,主要的问题出现在constraints里面的参数,不能有width和height。如果有width,height,那么回调的时候alert(err)直接说constraints的参数错误,于是把width,height删除,问题解决。
这个问题具体是什么原因导致的,望各位大神看源码指点一下。
热门评论
亲,我也是 ,获取不到摄像头,也没看到报错,请问 是怎么弄的啊