【发布时间】:2016-10-17 18:13:00
【问题描述】:
如果我不想将用户重定向到 https,我想使用 Javascript 来确定浏览器是否支持通过 http 访问网络摄像头 (navigator.getUserMedia)。但是,如果浏览器支持网络摄像头访问而不需要 https(例如,firefox),我根本不想将用户重定向到 https。我想使用专门的 http 为站点提供服务。我目前的解决方案是改变浏览器的用户代理:
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
我目前的解决方案在理论上会失败,因为 Firefox 可能会在未来几年的某个时间修补对网络摄像头访问的 http 支持。
目前我不愿在所有浏览器上推送 https 是有原因的,但我意识到浏览器世界正在朝着有一天需要无处不在的 https 的方向发展。
!!navigator.getUserMedia
无论我是在 http 还是 https 中运行 chrome,这都会返回 true,我想在当前版本的 chrome 而不是 firefox 上运行 http 时产生一个错误的值,我想这样做而不是用户代理的原因嗅探是因为浏览器修补了对 http 上的网络摄像头访问的支持,我希望我的代码能够适应而不需要修补。
简而言之,如何在不查找特定浏览器用户代理的情况下检测支持 http 中视频功能的浏览器?
【问题讨论】:
标签: javascript google-chrome firefox https getusermedia