The bug尽管使用HTTPS,Chrome仍无法打开zxing / ngx-scanner并在尝试这样做时收到此错误:@zxing/ngx-scanner Error when asking for permission. DOMException: Permission denied.
但是,它可以在Safari中完美运行。 Safari询问是否可以访问相机,并在获得许可后一切正常。
我已经使用了Stackblitz提供的样板代码zxing
,此repo's文档以及其他地方,例如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。
版本
其他上下文
我有同样的情况。请检查标题...在我的.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没有。