// ============================================================ // 权限管理 — 自动授予摄像头、麦克风权限 // 职责:绕过浏览器的权限弹窗,Electron 下直接授权 // ============================================================ import { session } from 'electron' /** * 设置权限自动授予 * Electron 默认不会弹出权限请求,需要在 Main Process 中显式处理 */ export function setupPermissions(): void { const allowedPermissions = [ 'media', // 摄像头和麦克风 'mediaKeySystem', // 媒体键 'notifications', // 通知 'clipboard-sanitized-write', // 剪贴板写入 ] // 处理权限请求 session.defaultSession.setPermissionRequestHandler( (_webContents, permission, callback, details) => { console.log(`[Permissions] 收到权限请求: ${permission}`, details) if (allowedPermissions.includes(permission)) { console.log(`[Permissions] ✅ 已授予: ${permission}`) callback(true) } else { console.warn(`[Permissions] ❌ 拒绝权限请求: ${permission}`) callback(false) } } ) // 权限检查:对允许的权限始终返回已授权 session.defaultSession.setPermissionCheckHandler( (_webContents, permission) => { return allowedPermissions.includes(permission) } ) console.log('[Permissions] 已设置权限自动授予:', allowedPermissions.join(', ')) }