跳转到内容

推送通知

当顾客的排队号转为 CALLED 时,Jonot 会向顾客发送系统通知 — 即使 浏览器标签页在后台或手机已锁屏。被跳过的排队号被召回后再次叫号时,也会 发送通知。

  1. 顾客即将加入队列,看到队列选择页
  2. 队列列表上方出现推送订阅卡片 — 顾客点按 通知我 并授予浏览器权限,然后加入。
  3. 其浏览器注册一个 Web Push 订阅。
  4. 顾客加入队列并收到排队号。订阅在服务器端与该排队号关联。
  5. 当服务台叫号时,服务器向该排队号的所有活跃订阅发送推送消息。
  6. 顾客的设备唤醒,显示带有排队号号码、队列名称和门店的系统通知。点按通知打开排队号屏幕。
  7. 当排队号到达终态(COMPLETEDCANCELEDNO_SHOW)或推送端点过期(浏览器退订/权限被撤销)时,订阅自动删除。

未在队列选择页订阅的顾客仍可从排队号屏幕订阅 — 排队号处于 WAITINGCALLED 期间会显示通知卡片。

如果顾客的排队号被跳过(移到 SKIPPED 状态),其推送订阅保持激活。 当员工随后召回该排队号(移回 WAITING)并叫号时,顾客会收到推送通知 — 即使其已关闭排队号页面。

这意味着订阅后暂时离开的顾客,在员工将其召回时仍会收到通知,无需保持 浏览器打开。

状态显示
提示(尚未请求权限)订阅 CTA 卡片(队列选择页 + 排队号屏幕)
已授予权限 + 已订阅”我们会通知您 — 可以关闭此标签页”确认
权限被拒绝后备建议 + 浏览器设置链接
浏览器不支持无(静默跳过)

订阅后,即使标签页已关闭或手机在后台,浏览器也会递送推送通知 — 顾客无需 保持排队号页面打开。

如果顾客的设备在排队号页面打开期间失去 WebSocket 连接(例如短暂离线后), 屏幕上会出现一个 连接已断开 — 正在重新连接…… 徽章。它仅对非终态 排队号显示,初始页面加载时从不显示。连接自动恢复;无需手动操作。

iOS Safari 16.4+ 支持 Web Push,但仅当应用已添加到主屏幕(独立模式)时。 在常规浏览器的 iOS Safari 中:

  • 队列选择页在队列列表上方显示一个 将 Jonot 添加到主屏幕 指引卡片。
  • 添加到主屏幕后,顾客从主屏幕图标重新打开 Jonot,标准的订阅 CTA 出现。

推送订阅与单个排队号关联。它们严格是事务性的:一个订阅对应一个排队号的 生命周期。没有发送促销或批量推送的机制 — 只有排队号 CALLED 事件触发通知。

GDPR / 同意依据: 订阅与顾客刚创建的排队号绑定。覆盖排队号本身的同一 同意依据(正当利益/合同履行)覆盖这单条通知。无需单独收集同意。

  • 标准:Web Push,载荷加密遵循 RFC 8291(AES-128-GCM),VAPID 认证请求遵循 RFC 8292。
  • 订阅存储:每个订阅绑定一个排队号,当该排队号到达终态时自动删除。