在 macOS 15.5 附带的 Safari 18.5 中,苹果添加了声明式 Web 推送 (Declarative Web Push) 特性,这是一种更新的方法,即使网站未打开也能提供基于 Web 的推送通知。
借助声明式 Web 推送,开发者无需使用 Service Worker 即可显示通知,从而延长 Web 推送通知的电池续航时间。
声明式 Web 推送更节能,也更私密,更易于开发者实现。它不依赖于 JavaScript,而是使用标准化的 JSON 格式,让浏览器无需额外代码即可直接显示通知。
{
"web_push": 8030,
"notification": {
"title": "Webkit.org — Meet Declarative Web Push",
"lang": "en-US",
"dir": "ltr",
"body": "Send push notifications without JavaScript or service worker!",
"navigate": "https://webkit.org/blog/16535/meet-declarative-web-push/",
"silent": false,
"app_badge": "1"
}
}
声明式 Web 推送不会像标准 Web 推送那样受到相同的功能破坏性错误和网络问题的影响,反跟踪预防功能也不会在用户一段时间未访问的网站上禁用它。
苹果表示,Declarative Web Push 向后兼容尚未添加支持的浏览器引擎。最终用户无需执行任何操作即可使用 Declarative Web Push,因为这是开发者在后台实现的功能。
Apple 此前已在 iOS 18.4 和 iPadOS 18.4 更新中,为 iPhone 和 iPad 添加了对声明式 Web 推送 (Declarative Web Push) 的支持。
Safari 18.5 包含在 macOS 15.5 中,但该浏览器更新也适用于仍在运行 macOS Sonoma 和 macOS Ventura 的 Mac。
更多信息访问 WebKit 博客。