错误
尽管使用HTTPS,Chrome仍无法打开zxing / ngx-scanner并在尝试这样做时收到此错误:@zxing/ngx-scanner Error when asking for permission. DOMException: Permission denied.
但是,它可以在Safari中完美运行。 Safari询问是否可以访问相机,并在获得许可后一切正常。
我使用了Stackblitz的样板代码zxing
,此breaking change文档以及其他地方的代码,例如Angular 8 component.html中的<zxing-scanner></zxing-scanner>
。即使是简单的<zxing-scanner></zxing-scanner>
,也不会产生这种行为。
要复制
重现行为的步骤:
1. npm i @zxing/ngx-scanner
2.在Angular 8项目中,在HTTPS生产环境(例如部署到Heroku)中,转到component.html中带有<zxing-scanner></zxing-scanner>
的页面。
3.不会要求任何权限来访问Chrome中的相机。
4.因此,无法打开扫描仪,并且控制台将显示以上错误。
5.转到Safari中的同一页面。浏览器要求获得访问相机的许可,扫描仪可以正常运行。
预期的行为 该扫描仪在生产过程中可用于所有浏览器,包括Chrome。
版本
其他上下文
答案 0 :(得分:0)
我也有同样的情况。请检查标题... 在我的.htaccess文件中,我有这样的内容:
Header set Feature-Policy "geolocation 'none'; midi 'none'; camera 'none'; usb 'none'; magnetometer 'none'; accelerometer 'none'; vr 'none'; speaker 'none'; ambient-light-sensor 'none'; gyroscope 'none'; microphone 'none'"
如您所见:
camera 'none';
Firefox忽略了它,而chrome没有。