feat:项目打包成Electron

This commit is contained in:
2026-06-14 18:10:58 +08:00
parent 7a0443ebcc
commit 8970b63800
20 changed files with 3895 additions and 11 deletions

View File

@@ -0,0 +1,42 @@
// ============================================================
// 权限管理 — 自动授予摄像头、麦克风权限
// 职责绕过浏览器的权限弹窗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(', '))
}