From 44a0617efe0b31210834aed00367f94b4ff8b21e Mon Sep 17 00:00:00 2001 From: shuaiplus <2327005759@qq.com> Date: Sat, 10 May 2025 20:26:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=80=9A=E7=9F=A5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=8F=91=E9=80=81=E8=80=85?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=8C=E4=BF=AE=E6=94=B9=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=BA=E8=8B=B1=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/main.js | 2 +- web/util.settings.js | 74 ++++++++++++++++++++++++++++++++------------ 2 files changed, 56 insertions(+), 20 deletions(-) diff --git a/web/main.js b/web/main.js index 578578f..d52565c 100644 --- a/web/main.js +++ b/web/main.js @@ -416,7 +416,7 @@ function joinRoom(userName, roomName, password, modal = null, onResult) { timestamp: Date.now() }); // 通知消息,无论当前房间是否激活 - notifyMessage(newRd.roomName, msgType, msg.data); + notifyMessage(newRd.roomName, msgType, msg.data, realUserName); if (activeRoomIndex === idx) renderChatArea(); } }; diff --git a/web/util.settings.js b/web/util.settings.js index 3d3fe00..a4743ac 100644 --- a/web/util.settings.js +++ b/web/util.settings.js @@ -2,7 +2,7 @@ // 设置面板逻辑(仅UI和本地存储,功能待实现) const DEFAULT_SETTINGS = { - lang: 'zh', // 'zh' | 'en' + lang: 'en', // 'zh' | 'en' notify: false, // 桌面通知 sound: false // 声音通知 }; @@ -23,9 +23,16 @@ function applySettings(settings) { // 主题切换逻辑已移除 // 语言切换(仅UI,功能待实现) document.documentElement.lang = settings.lang; - // 请求通知权限(若启用浏览器通知) - if (settings.notify && "Notification" in window && Notification.permission !== 'granted') { - Notification.requestPermission(); +} + +// 兼容各浏览器的 requestPermission 调用 +function askNotificationPermission(callback) { + if (Notification.requestPermission.length === 0) { + // 返回 promise + Notification.requestPermission().then(callback); + } else { + // 接受 callback + Notification.requestPermission(callback); } } @@ -37,23 +44,23 @@ function setupSettingsPanel() { panel.className = 'settings-panel'; panel.innerHTML = `
-
设置
+
Settings
- 语言 + Language
- 桌面通知 + Desktop Notification
- 声音通知 + Sound Notification