由于http协议是不安全的,navigator.mediaDevices.getUserMedia默认是访问不了本地摄像头等设备的。
在Electron中有大致两种方法;
一、使用内置模块protocol的registerSchemesAsPrivileged方法
以下是官网对该方法描述
具体使用方法如下
const { protocol } = require('electron')
protocol.registerSchemesAsPrivileged([
{
scheme: 'http',
privileges:
{
standard: true,
secure: true,
bypassCSP: true,
allowServiceWorkers: true,
supportFetchAPI: true,
corsEnabled: true,
stream: true,
}
}
]);
具体每个参数的含义这里不做解释,有兴趣可以去官网看看。也就是说这个方法可以把指定的协议当成安全的协议,从而允许调用摄像头等设备,但需要注意开启后该协议所有网址都会被视为安全网址,安全性会降低,这里推荐第二种方法;