chrome 报错 navigator.mediaDevices is undefined

10/28/2020 工具

what?chrome 会报错?你代码写错了把!

# chrome 报错 navigator.mediaDevices is undefined

最近在开发一个摄像头项目(多人会议,需要摄像头~~)。然后同事的电脑调试好好的,到我这里就报错了,我的 chrome 版本一直都在最新的,为啥到我这反而还不兼容?

原来是以后的内容会越来越严格
chrome:想调用摄像头?可以啊,拿出你的https证书给我瞧瞧

# 解决问题

毕竟不可能到处都有 https 证书把,总得本地调试把,localhost 域名总会有吧。于是发现了这么一篇文章:MediaDevices.getUserMedia` undefined 的问题 (opens new window)

那么我自己也做个记录

# 解决方法 1

通过相应参数启动 Chrome

比如我们调试的链接是:http://example.com。如果有多个网址,用,隔开

 --unsafely-treat-insecure-origin-as-secure="http://example.com"
1

加哪里呢?

注意前面有个空格

# 解决方法 2(比较推荐这个)

  • chrom 下

打开 chrome://flags/#unsafely-treat-insecure-origin-as-secure

  • 选 enabled
  • 填写需要调试的 URL,多个 URL 以,隔开
  • 完全重启 chrome 后起效(改了之后下面也会有个 relaunch 按钮)

重启后发现,就可以非https调试了

  • edge 下

毕竟现在 edge 和 chrome 内核一样了,所以操作方法一样,只是打开链接不同:edge://flags/#unsafely-treat-insecure-origin-as-secure


至此,问题就解决了,要想到线上使用,还是需要https,现在没 https 寸步难行

Last Updated: 7/4/2022, 3:54:47 PM