beeshop 的 PWA 与 Web Push 让商家与买家无需装 App 也能收推送。本文讲清 sw.js、webmanifest 与 iOS 推送的硬前提。
beeshop 用 PWA + Web Push 把「无需下载 App 也能推送」做成默认能力:商家有新订单、买家有配送更新,都能实时触达。
PWA 三件套
sw.js:Service Worker,负责推送与离线缓存;webmanifest:PWA 清单(图标、名称、显示模式);- 前端资源经
?v=与 SW 缓存桶联动,由minify_assets.cjs的PINNED_VERSION统一管理。

iOS 推送的硬前提
iOS 的 Web Push 要求:站点必须是 HTTPS、且用户把站点添加到主屏幕后以 PWA 形态打开。宝塔默认缺 webmanifest 的 mime,需在 Nginx 里修正,否则 iOS 拒解析。
运营注意
- 务必先申请 HTTPS 证书,再启用推送;
- 上传新版本前端后,PINNED_VERSION 变更会自动让旧缓存失效;
- 推送文案要克制,避免打扰导致用户取消订阅。
订阅与推送
- 浏览器订阅经 VAPID 注册,服务端按用户维度精准下发;
- 推送支持标题、正文、图标与跳转链接,点击直达商品或订单。
iOS 注意事项
- iOS 需先把站点「添加到主屏幕」,以 standalone PWA 形态才能稳定收到;
- 会话令牌设为长期有效(90 天),避免 standalone 下频繁掉登录。
适合需要把「下单通知、活动召回」主动送到用户手上的运营团队。
常见问题
iOS 能收 Web Push 吗?
能,但前提是 HTTPS + 添加到主屏幕的 PWA。HTTP 下 iOS 会拒解析 PWA。
SW 缓存怎么联动版本?
前端资源 ?v= 与 SW 缓存桶由 minify_assets.cjs 的 PINNED_VERSION 统一联动,避免旧缓存。



评论 (0)
还没有评论,来抢沙发吧。