当前位置: 代码迷 >> 综合 >> H5部署后navigator获取不到mediaDevices问题处理(navigator.mediaDevices为undefined)
  详细解决方案

H5部署后navigator获取不到mediaDevices问题处理(navigator.mediaDevices为undefined)

热度:57   发布时间:2024-02-21 17:43:57.0

问题产生

最近在开发过程中,有一个具体需要要使用摄像头内嵌到h5页面中实现拍照效果,相当于变相通过还H5调原生拍照、摄像等效果。
在这个过程中发现在开发环境时,各种访问媒体设备都没有问题,但是当部署到服务器上,手机和电脑浏览器都无法调起摄像头,比较郁闷,阅读了很多文章和原生文档后才知道原因并解决。

问题分析解决

这是由于浏览器的安全策略导致的,目前本人翻阅到的文档,有下面三种情况是可以调起设备的,也就是navigator.mediaDevices不为undefined:

  1. 地址为localhost:// 访问时
  2. 地址为https:// 时
  3. 为文件访问file:///

现实场景就是开发时将项目起在了localhost下,而部署项目部署到了http下,部署时不符合上面三种情况之一,所以浏览器处于安全考虑会禁掉通过代码调用媒体。
注: 如果有其他可以调用的设备请斧正

因国内没有比较优秀的H5页面内嵌摄像头的文章,后续会出一篇如何实现将《摄像头内嵌到H5页面》的文章,供大家查阅使用

有疑问请评论或私信

  相关解决方案