主要观点:Web 推送通知是网络平台的重要部分,需维持功率效率和隐私预期,Declarative Web Push 可让开发者无需安装服务工作者即可请求推送订阅和显示通知,更节能更隐私且兼容现有推送通知。
关键信息:
- 现有 Web 推送通知以 JavaScript 为先,需注册服务工作者,接收推送消息后由服务工作者处理显示通知,存在静默推送保护和跟踪数据等挑战。
- Declarative Web Push 可通过
PushManager
获取推送订阅,支持window.pushManager
,推送消息需符合标准 JSON 格式,包含通知描述等信息,用户激活时可导航到指定 URL,若服务工作者处理失败则使用 fallback 通知。 - 若无法通过互联网发送通知描述,原生 iOS 应用可通过
UNNotificationServiceExtension
处理,Web 应用中服务工作者 JavaScript 也起类似作用,且浏览器无需对 Declarative Web Push 应用静默推送惩罚。 - 标准工作方面,已在多个规范中提出相关提案,如允许通知指定导航 URL、添加 Declarative Web Push 格式、在
Push API
中暴露pushManager
等,希望该功能能广泛应用。
重要细节: - WebKit 为维护隐私和电池寿命,要求推送订阅设置
userVisibleOnly
标志为true
,否则会撤销推送订阅。 - Declarative Web Push 的
web_push
值致敬 RFC 8030,notification
字典描述通知内容,非空"title"
必填,还可指定其他可选成员。 - 标准工作中的各项提案细节及对相关 API 的修改,如 Notifications API 和 Push API 的调整。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。