Electron 应用程序不要求在 macOS Monterey 上获得相机和麦克风许可

Electron app not asking for Camera and Microphone permission on macOS Monterey

我已经构建了一个堆栈电子和 reactjs 的应用程序。我正在尝试从应用程序访问摄像头和麦克风。但是该应用程序在请求时不会请求许可,也不会显示在系统偏好设置 - >摄像头和麦克风下的安全和隐私中。 以下是我使用的版本:

"electron": "^15.3.0",
"electron-builder": "^22.14.5",
"electron-devtools-installer": "^3.2.0",
"electron-notarize": "^1.1.1",
"electron-rebuild": "^3.2.3", 
"react": "^17.0.2"

让我知道我缺少或需要更改的内容。提前致谢。

我也遇到了这个问题,它在 macOS Catalina 中运行良好,但在蒙特雷有时却没有。

看了electron官方文档后解决了:

“如果您计划使用 Electron 的 API 在您的应用程序中访问麦克风或摄像头,您还需要添加以下权利”

<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.device.camera</key>
<true/>

要添加权利,因为您正在使用 electron-builder,您可以在 package.json 中使用一个配置,将其添加到 "mac" 下,您添加:

"extendInfo": {
        "NSMicrophoneUsageDescription": "Please give us access to your microphone",
        "NSCameraUsageDescription": "Please give us access to your camera",
        "com.apple.security.device.audio-input": true,
        "com.apple.security.device.camera": true
      },

然后您需要添加以下行来请求媒体权限:


const { systemPreferences } = require('electron')

const microphone = systemPreferences.askForMediaAccess('microphone');
const camera = systemPreferences.askForMediaAccess('camera');