跳转至

浏览器通知(Web Push)

StockClaw 可以给任何你登录过的浏览器发送系统级通知——FLASH 或 ALERT 信号到达的瞬间,不需要你开着那个 tab。点击通知会深链回仪表盘,定位到对应的信号。

你能收到什么

  • 桌面: macOS 通知中心、Windows 操作中心、Linux 桌面环境通知。FLASH banner 在你关闭之前会一直置顶;ALERT 按 OS 默认时长淡出。
  • Android: 锁屏 banner + 通知抽屉里的常驻条目。
  • iOS Safari: 必须先 把 StockClaw 作为 PWA 安装——从分享菜单"添加到主屏幕",iOS 16.4 及以上。普通 Safari tab 按 Apple 规矩 支持 Web Push。

点击 banner:

  • 如果你已经开着 StockClaw 的 tab,会聚焦那个 tab 并导航到对应信号。
  • 否则会新开一个 tab 到那条信号。

无论哪种,仪表盘都会滚动到那张信号卡,并让强调色边框闪烁约 2 秒,方便找到。

启用

设置 → 浏览器通知 → 启用。 流程:

  1. StockClaw 展示一段简短说明,确认你在开启什么。
  2. 浏览器弹出它原生的权限提示——选 Allow。
  3. StockClaw 把你浏览器的 push endpoint 注册到后端。
  4. 按钮变成 禁用

你登录过的每个浏览器分别订阅——手机和笔记本可以都收,或者只收一边,互不影响。在一台设备退订不影响另一台。

禁用 / 撤销

  • StockClaw 内部: 设置 → 浏览器通知 → 禁用。一键。退订那个浏览器并告诉后端把记录清掉。
  • 浏览器级: Chrome(或同类)站点权限 → 撤销 StockClaw 的通知。服务端订阅记录会在下次投递尝试时清理(推送服务返回 404/410)。

iOS PWA 安装

要在 iPhone / iPad 上收 web push:

  1. 在 Safari 里打开 StockClaw(iOS 上的 Chrome 不算——它用的是 WebKit,但 PWA 功能少一些)。
  2. 分享 图标 → 添加到主屏幕
  3. 从主屏幕图标启动 StockClaw(不是从 Safari)。这会以独立 PWA 模式启动 app。
  4. 进设置 → 浏览器通知 → 启用。iOS 会提示授权。
  5. 关闭 app。通知现在会落在锁屏上。

隐私

payload 内容在我们后端和你浏览器之间端到端加密,用的是 VAPID + 订阅自身的 P-256 密钥——中间的推送中继(Apple、Google FCM、Mozilla autopush)无法读取 payload,只能路由。我们把订阅(endpoint URL、公钥、user agent)存在你的 push_subscriptions 行上,跟其他每张表一样受行级安全保护。别人的浏览器收不到你的信号。

故障排查

"启用"按钮灰掉,显示 "Unsupported":

  • 你浏览器没有 PushManager(很老的 Safari、较老的 Firefox)。升级浏览器。

"启用"按钮显示 "Blocked in browser":

  • 你之前拒绝过权限提示,浏览器记住了。点 URL 栏的锁图标 → 把通知重置为 "Ask",然后刷新。

订阅了但没收到通知:

  • Celery workers 必须在跑(流水线写入和投递都在那里发生)。
  • 只有 FLASH 和 ALERT 会推送;NOTE/FYI 只进仪表盘。
  • 试试登录页文档里的 Console 烟雾测试,给自己发一个本地通知,确认 service worker 还活着。

每个 Beat 周期来一个通知,而不是每条信号一个:

  • 多条信号同时到达时是预期行为——每条都有自己的 banner,但它们共用一个图标,也共用回到具体信号的深链。