Webcodecamjs-QR代码扫描库在Safari浏览器中不起作用

时间:2018-07-09 14:02:17

标签: javascript safari cross-browser webcodecamjs

我希望移动页面可以扫描QR码并显示其内容。 这是页面: https://ndvibes.com/demo/TicketSystem/check(index.html)

很奇怪,它可以在Firefox(Linux)上运行,但不能在Safari(iOS 11.4 / iPhone 6)上运行。

我认为我使用的库不支持Safari,或者Safari受限制 出于安全原因,但是demo中的library在iPhone上可以正常使用!

所以它似乎支持Safari,并且它没有被阻止,因为它可以在演示中使用...

我不知道如何解决此问题。 Safari会请求访问相机的权限,授予权限时,它只是不显示相机的内容。 我还检查了Safari的设置,但没有看到任何禁用的内容可能会阻止显示网络摄像头视频。

编辑:该代码似乎也无法在Android上运行,这很奇怪,该演示在台式机和移动设备上均可运行,而我自己的代码在台式机上均可运行,但无法正常运行在手机上...

1 个答案:

答案 0 :(得分:1)

要在Apple设备上使用,必须确保:

1-您必须使用https,因为http协议无效。

2-您必须使用Safari,因为在Apple中,其他浏览器没有权限或无法访问某些javascript内容。

3-必须使用某些版本,才能同时使用两个摄像机。


问题::我以为我使用的库不支持Safari,或者出于安全原因,Safari对其进行了限制,但是该库的演示在iPhone上正常运行!


原因:我经历过your webcodecamjs.js并与demo webcodecamjs.js进行了比较。我发现这些文件中存在一些差异。可能是从git提取的lib代码和实际的演示库代码不同。

解决方案:只需将your webcodecamjs.js替换为demo webcodecamjs.js,它应该可以工作。


编辑

注意:由于Safari不允许自动播放,因此必须通过事件触发来启动摄像机。