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

标签 javascript safari cross-browser

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

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

我认为我使用的库不支持 Safari,或者 Safari 受到限制 出于安全原因,但是 demo library的在 iPhone 上运行得很好!

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

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

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

最佳答案

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

1-您必须使用 https,因为 http 协议(protocol)不起作用。

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

3- 必须使用某个版本,以便您可以使用两个摄像头。


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


原因:我已经完成了 your webcodecamjs.js并与 demo webcodecamjs.js 进行比较.我发现这些文件存在一些差异。可能是从git获取的lib-code和实际的演示lib-code不同。

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


编辑

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

关于javascript - Webcodecamjs-二维码扫描库在 Safari 浏览器中无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51247450/

相关文章:

css - Safari 8.0.6 忽略字母组合 : 'fit' 的 CSS 字母间距属性

javascript - Chrome、Opera 和 Safari 控制台中脚本执行的奇怪结果

google-chrome - 视口(viewport)设备宽度 : incorrect width/large font in Safari landscape (correct on Chrome)

internet-explorer - 为什么这个 SVG 图形在 IE9 和 10(预览版)中不缩放?

CSS 导航(浏览器问题)

asp.net - 阻止 IE6 访问者

javascript - 将值传递给内部 javascript 函数

Javascript 编译器行为 - 空数组和零数组的双加号是.. ONE

javascript - 拆分字符串然后访问数组

javascript - 我可以在 jQuery scroll() 中调用预定义函数吗?