H5项目部署后,navigator.mediaDevices无法获取视频媒体设备的解决方法
在H5应用部署过程中,开发者经常遇到navigator.mediaDevices返回undefined的情况,尤其是在http页面嵌套https iframe的场景下,即使在iframe内也无法获取媒体权限。 问题通常出现在HTTP根页面嵌入HTTPS iframe的结构中,localhost、HTTPS和file://环境下的解决方案在此无效。
步骤如下:
-
访问Chrome浏览器实验性功能页面: 在地址栏输入chrome://flags/#unsafely-treat-insecure-origin-as-secure 并回车。
-
启用“将不安全来源视为安全”: 找到“将不安全来源视为安全”选项(Insecure origins treated as secure),将其设置为“已启用”。
-
添加HTTP域名: 在该选项下方的文本框中,输入你的HTTP域名。
-
重启浏览器: 完成设置后,重启Chrome浏览器使更改生效。
通过以上步骤,你的HTTP页面应该能够通过navigator.mediaDevices正常访问媒体设备了。此方法经验证有效。 注意: 此方法修改了浏览器安全策略,仅用于开发和测试环境,不建议在生产环境中使用,因为它会降低安全性。 生产环境下,应采用HTTPS协议部署整个应用。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END