electron macOS Monterey上的电子应用不需要相机和麦克风权限

piok6c0g  于 2022-12-08  发布在  Electron
关注(0)|答案(2)|浏览(256)

我建立了一个stack electron和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"

让我知道我错过了什么或需要改变。提前感谢。

n7taea2i

n7taea2i1#

我也遇到了这个问题,在macOS Catalina 运行良好,但在 Monterey 有时就不行了。
我在电子官方文档中阅读了这一点后解决了:
“如果您计划使用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');
zzlelutf

zzlelutf2#

我想添加额外的信息与Caio Nakai的答案,我有应用程序崩溃问题与此修复也。
所以我找到了下面的修复方法。在mac配置下,请添加以下属性false

"hardenedRuntime": false

相关问题