HelloKitty • 2023-01-04 18:15
5123
本文由 今日头条-前端进阶 撰写/授权提供,转载请注明原出处。
Safari 推送通知
1.Apple 宣布集成 Web Push
Apple 在 WWDC22 (2022 年 6 月 6 日)上宣布 Web Push 终于集成到了 Safari 中。它已经在 macOS 上的 Safari 16 Beta 中可用,明年,它也将集成到 iOS 和 iPadOS。
Apple 在 WWDC22宣布支持Web Push
Web Push 即将集成到 macOS Ventura 上的 Safari 16。这让您可以远程向您的网站和网络应用程序的用户发送通知——即使 Safari 未运行时也可以发送这些通知。它使用与其他浏览器相同的 Web 标准组合:Push API 和 Notifications API,以及 Service Worker。
用户首先通过用户手势(例如单击按钮)表明兴趣来选择接收通知。然后,系统会提示他们授予您的网站或应用程序发送通知的权限。用户将能够在通知中心查看和管理通知,并在通知设置中自定义样式并关闭每个网站的通知。
如果您已经使用行业最佳实践为您的网络应用程序或网站实施了网络推送,它将自动在 Safari 中运行。不过,如果您通过浏览器检测排除了 Safari,则需要切换到功能检测才能使其正常工作。
Safari 中的 Web Push 使用相同的 Apple Push Notification 服务,支持所有 Mac 和 iOS 设备上的本地推送。如果您严格管理服务器上的推送端点,请确保您允许来自 push.apple.com 的任何子域的 URL。而且您无需成为 Apple Developer Program 成员,2023 年将在 iOS 和 iPadOS 的等系统上支持Web Push。
至此,PWA 将逐渐发展为 Google Play/App Store 应用程序范例的可靠替代方案,该方案具有以下明显优势:
以前只能在 Android、Windows 和 macOS(通过 Chrome)上使用,iOS 上缺乏支持意味着整个平台根本无法发送通知。随着 Apple 对网络推送的额外支持,可以说,使用 PWA 做不到而本地应用程序可以做的事情已经越来越少。
2.Web Push 什么时候可以在 Safari 上使用?
下面是已知的事实:
. Web Push 在 macOS Ventura 上的 Safari 16 Beta 中可用, 测试版已经可以下载
. Web Push 将于 2023 年集成到 iOS
此外,到目前为止,仅针对 macOS Ventura 上的 Safari 发布了 Web Push。Maximiliano Firtman 询问 macOS Monterey 或更早的 macOS 版本在为它们发布 Safari 16 时是否也可以访问该功能。回应似乎是否定的,至少目前是这样。
那么 macOS Ventura 什么时候发布呢?下面来自 Apple 的发版记录:
macOS Ventura在2022/12/13发布支持Web Push
Apple 明确表示 iOS 上的 Web Push 将是以后更新的一部分, 通常有每月到每两个月的 iOS 更新。我们不知道哪个将包含推送通知功能, 可能会在 2023 年的某个时候到来。
3.在 iOS 上实现 Web Push 需要做什么?
这一次,Apple 似乎在遵循 W3C 规范,您也不必成为 Apple Developer Program 会员即可使用推送通知。
对于开发人员而言,只需很少的工作即可使他们的应用程序与 iOS、iPadOS 和 macOS 上的 Web Push 兼容。
但是,如果您的推送实施之前通过浏览器检测排除了 Safari,则您需要切换功能检测才能使其正常工作。下面是一个 JavaScript 函数示例,它告诉您当前浏览器是否与推送通知兼容:
function currentBrowserSupportsPush(){
if (!'PushManager' in window){return false;}
if (!'serviceWorker' in navigator){return false;}
if (!'Notification' in window){return false;}
return true;
}
以上代码当前在 Safari 上返回 false,在 Safari 16 上应该返回 true。其次,如果您在服务器上管理推送端点,您还必须允许来自 push.apple.com 的任何子域的 URL。
4.不允许 iOS 上使用 Web Push的潜在问题?
正如 Arye Shalev 所指出的,在 iOS 上,PWA 是添加到主屏幕后的 Safari 的孤立实例。他们还能访问 Web Push API 吗?我们还不知道。但如果答案最终是“否”,将会有一些值得注意的后果:
. 开发人员将不得不实施一个新的流程,他们要求用户在安装 PWA 之前允许通知,因为一旦安装了应用程序就不可能再询问他们。
. 当用户点击推送通知时,它将打开 Safari 而不是已安装的 PWA。
5.哪些推送服务可以与 iOS 上的 Web 推送一起使用?
Web Push推送服务
在 Safari 16 和 iOS 16 支持之前,OneSignal、Firebase In-App Messaging 和 PushAlert 等其他推送服务很可能也会提供支持。
换句话说,如果您正在使用第三方服务(您可能应该使用),则您无需做什么。
参考资料
https://javascript.plainenglish.io/everything-you-need-to-know-about-web-push-on-ios-macos-5a4b3b715b24
https://webkit.org/blog/12824/news-from-wwdc-webkit-features-in-safari-16-beta/
https://support.apple.com/zh-cn/HT201222
https://developer.apple.com/documentation/usernotifications/sending_web_push_notifications_in_safari_and_other_browsers
https://pushalert.co/blog/amplify-conversions-with-safari-web-push-notifications/
扫码关注公众号
获取更多技术资讯