You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10中chrome.notifications.update仅更新一次的原因及解决方法

问题原因分析

这个问题的核心是Windows 10系统下Chrome对requireInteraction: true的持久化通知更新逻辑存在兼容性差异。当你设置requireInteraction: true让通知保持显示时,Windows的Toast通知系统对仅修改title和message的更新请求处理非常严格,后续的chrome.notifications.update()调用可能不会触发UI刷新——而MacOS的通知系统对这类更新的处理更宽松,所以能正常工作。

你可以查看后台日志里的updated? ${updated}输出,大概率后续的更新请求会返回false,这也能佐证Chrome在Windows下没能成功触发通知更新。

解决方案

这里提供两种可行的修复方案,你可以根据体验需求选择:

方案一:添加可变属性触发Windows通知更新

Windows的Toast通知系统需要看到通知属性有实质性变化才会刷新UI。我们可以在每次更新时添加一个随时间变化的属性(比如时间戳),让系统识别这是一个有效的更新请求。

修改displayNotification函数里的notificationOptions,新增contextMessage字段:

const notificationOptions = {
  type: 'basic',
  iconUrl: 'icon.png', // required
  title: message,
  message,
  silent: true,
  requireInteraction: true,
  // 添加随时间变化的属性,强制Windows刷新通知
  contextMessage: Date.now().toString()
}

这个字段会显示在通知的下方(不影响主要内容),但每次更新时它的值都是新的,Windows会因此触发通知UI的更新,这样你的倒计时就能正常走完所有步骤了。

方案二:替换为“清除旧通知+创建新通知”的逻辑

如果方案一不符合你的需求,也可以放弃更新同一个通知,改为每次清除旧通知后创建新的。虽然会有轻微的闪烁,但能确保内容在Windows下正常显示:

修改点击事件的处理逻辑:

chrome.browserAction.onClicked.addListener(() => {
  chrome.notifications.getPermissionLevel(async (permissionLevel) => {
    console.log(`permissionLevel: ${permissionLevel}`)
    if (permissionLevel === 'granted') {
      let currentId;
      
      // 显示3秒倒计时
      currentId = await displayNotification('Recording in 3...');
      await waitForMs(1000);
      await chrome.notifications.clear(currentId);

      currentId = await displayNotification('Recording in 2...');
      await waitForMs(1000);
      await chrome.notifications.clear(currentId);

      currentId = await displayNotification('Recording in 1...');
      await waitForMs(1000);
      await chrome.notifications.clear(currentId);

      // 显示录制提示并自动消失
      await displayNotification('Now recording!', undefined, 3000);
    }
  })
})

额外建议

  • 确保你的Chrome是最新版本:旧版本的Chrome在Windows下对通知更新的支持可能存在bug,升级到最新版可能直接解决问题。
  • 检查Windows通知设置:确认Chrome的通知权限是完全开启的,没有被设置为“静默通知”或者限制通知内容。

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 12:27:53