Webcodecamjs-二维码扫描库在Safari浏览器中不工作

Webcodecamjs-QR code scanning Library not working in Safari browser

我想要一个移动页面来扫描二维码并显示它的内容。 这是页面: https://ndvibes.com/demo/TicketSystem/check (index.html)

非常奇怪,它在 Firefox (Linux) 上运行,但在 Safari 上运行 (iOS 11.4 /iPhone 6)。

我认为我使用的库不支持 Safari,或者 Safari 受限 这是出于安全原因,但 demo of the library 在 iPhone!

上工作得很好

所以它似乎支持 Safari,而且它没有阻止它,因为它在演示中工作...

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

编辑: 这段代码在 Android 上似乎也不起作用,很奇怪,该演示在桌面和移动设备上都可以运行,而我自己的代码是在桌面上工作,但在移动设备上不起作用...

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

1- 你必须使用 https,因为协议 http 不起作用。

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

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


问题:我以为我使用的库不支持Safari,或者Safari出于安全原因限制了它,但是库的演示在iPhone!


原因: 我已经完成了 your webcodecamjs.js and compared with demo webcodecamjs.js。我发现这些 files.May 中有一些差异是从 git 和实际的演示库代码不同。

解决方法:只需替换your webcodecamjs.js with demo webcodecamjs.js即可。


编辑

注意:您必须通过事件触发器启动相机,因为 Safari 不允许自动播放。