H5部署后,如何解决页面video媒体获取navigator.mediaDevices为undefined的问题?

H5部署后,如何解决页面video媒体获取navigator.mediaDevices为undefined的问题?

H5项目部署:解决http协议下navigator.mediaDevices为undefined的问题

在H5项目中,使用HTTP协议访问页面时,navigator.mediaDevices 对象返回 undefined 是一个常见问题。即使iframe使用https协议,此问题依然可能存在。本文提供一种无需依赖localhost或file协议的解决方案。

问题描述: 根页面使用HTTP协议,内嵌iframe使用HTTPS协议,但iframe内仍然无法访问 navigator.mediaDevices。

解决方案: 通过修改谷歌浏览器安全策略解决此问题。

步骤:

  1. 谷歌浏览器地址栏输入 chrome://flags/#unsafely-treat-insecure-origin-as-secure 并访问。
  2. 找到 “Insecure origins treated as secure” 选项(该选项通常会高亮显示)。
  3. 将该选项设置为“已启用”。
  4. 在输入框中输入你的HTTP域名(例如:你的域名.com)。
  5. 重启谷歌浏览器

完成以上步骤后,谷歌浏览器将你的HTTP域名视为安全域名,从而允许访问 navigator.mediaDevices。此方法经过验证有效。 请注意,此方法修改了浏览器安全设置,仅在测试环境中使用,生产环境请谨慎操作,并优先考虑使用HTTPS协议。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享