2023年iOS 16网页推送通知

对于我们这些一直在等待的人来说,主要是为了让我们的 Discourse 实例在 iOS 上运行得更好,这一天似乎近在眼前了,因为苹果今天正式宣布在 2023 年推出的 iOS 16 中支持 Web 推送通知。

23 个赞

明天有一个关于此的演示文稿:

这里有更多关于实现的细节。

https://webkit.org/blog/12824/news-from-wwdc-webkit-features-in-safari-16-beta/

Web Push 即将登陆 macOS Ventura 上的 Safari 16。这使您可以远程向您的网站和 Web 应用的用户发送通知,即使在 Safari 未运行时也能传递这些通知。它使用了您可能从其他浏览器熟悉的相同 Web 标准组合:Push APINotifications API,以及 Service Worker

用户通过用户手势(例如单击按钮)表示兴趣后,即可选择接收通知。然后,系统会提示他们授予您的网站或应用发送通知的权限。用户将能够通过通知中心查看和管理通知,并在通知设置中为每个网站自定义样式和关闭通知。

如果您已经使用行业最佳实践为您的 Web 应用或网站实现了 Web Push,它将在 Safari 中自动运行。但是,如果您通过浏览器检测排除了 Safari,则需要切换到功能检测才能使其正常工作。

Safari 中的 Web Push 使用与为所有 Mac 和 iOS 设备上的原生推送提供支持的 Apple Push Notification 服务相同的服务。如果您在服务器上严格管理推送端点,请确保允许来自 push.apple.com 任何子域的 URL。您无需成为 Apple Developer Program 会员。

并期待 2023 年的 iOS 和 iPadOS Web Push。

macOS Safari 自 2013 年以来一直支持非标准的 Web 推送通知,但之前从未在 iOS 上运行过。

此公告似乎仅表明 macOS Safari 将在 Safari 16 中切换到基于标准的 API,这很好,但如果您想要 macOS Safari 推送通知,您今天就可以实现它们。

iOS 支持将是真正的改变者。

9 个赞

我感谢您提供更详细的信息!

您或其他人知道这会对 Discourse 实例产生什么影响吗?我假设这意味着当有人将网站保存到主屏幕时,它将允许用户接收来自该 Discourse PWA 的通知,这是真的吗?

此外,这是否允许 DiscourseHub 向其中的所有 Discourse 实例发送 iOS 推送通知?

1 个赞

不,此功能与安装到主屏幕或“PWA”无关。

“PWA”是 Google 开发者发明的一个营销术语;该术语指的是一系列功能:

  1. 添加到主屏幕 (A2HS)
  2. 离线支持,以便在您离线时网站/应用仍可运行
  3. 原生应用般的功能(以前仅限于原生应用的功能),包括推送、蓝牙、后台获取等。

但这些功能之间本身并没有必然联系。您可以拥有其中任何一项功能,而无需其他功能。

  • 您可以将任何网页添加到主屏幕。网页不必具有离线支持或原生应用般的功能即可 A2HS。(它实际上只是将书签添加到您的主屏幕;A2HS 仅此而已。)
  • 无论您是否使用 A2HS,都可以为您的网站启用离线支持。
  • 没有需要您使用 A2HS 或使用离线支持的原生应用般的功能。只要用户接受“权限”对话框,WebBluetooth 就可以在任何网页上运行;您不必 A2HS 即可启用它。

今天,在 Google Chrome 和当前发布的 macOS Safari 15 版本中,网站可以弹出一个小的请求对话框,询问推送通知的权限。(您必须在“点击”处理程序或类似的“用户手势”(如拖动或滑动)的响应中执行此操作。)您可能偶尔会在新闻网站上看到这些弹出窗口。

Apple 的博文似乎表明 Safari 16 中的权限提示不会有任何改变:

用户首先通过用户手势(例如单击按钮)表示兴趣来选择接收通知。然后,系统将提示他们授予您的网站或应用发送通知的权限。

这个问题令人困惑。这正是 Discourse Hub 今天所做的。

2 个赞

我想可能是我的 iPhone 通知设置有问题,导致通知没有送达:

啊,太好了!这样人们就可以在没有 A2HS 的情况下收到通知了,听起来很棒,谢谢。

我的印象是,Discourse Hub 中的 iOS 通知仅适用于 Discourse 团队托管的 Discourse 实例,如以下消息所示。这种情况改变了吗?

4 个赞

正如您链接的帖子所解释的,Discourse Hub 可以为任何 Discourse 站点推送通知,即使不是由 Discourse 团队托管的站点,但它仅为 Discourse 团队托管的站点推送_实时_(即时)通知。如果您将非托管站点添加到 Discourse Hub,您将收到通知,但通知的频率会较慢。

尽管如此,我认为这并不是问题所要问的,但也许我误解了:

Discourse Hub 已经可以发送 iOS 推送通知 来自 其内部的所有 Discourse 实例。非托管站点发送通知的速度较慢,但它们确实会发送通知。

4 个赞

啊,我确实希望自托管站点能够发送即时通知。也许通知延迟让我对它们当前是否正在发送感到困惑。

话虽如此,我很高兴 iOS 16 应该能够为自托管 Discourse 站点启用即时通知 :tada:

2 个赞

感谢您的澄清。我主要对实时 iOS 推送通知感兴趣,而不是通过轮询获取的通知。

2 个赞

“WKWebView”是 Apple 在原生应用中嵌入网页浏览器的 API;Discourse Hub 使用 WKWebView。据我所知,今天现有的专有 macOS Safari 15 推送通知在 macOS 的 WKWebView 中不起作用。

Apple 提供的一些原生功能 在 Safari 应用中可用,而在 WKWebView 中不可用,有时甚至在保存到主屏幕的网页中也不可用,这些网页在技术上都在 iOS 上运行一个单独的“Web.app”进程。

我们还不知道新的标准推送 API 是否能在 WKWebView 中工作(因此我们不知道它是否能在 Discourse Hub 中工作),我们当然也不知道推送 API 是否能在 iOS 的 WKWebView 中工作,而 iOS 在 2022 年甚至还没有发货。

但是,明天的演示应该会提供更多细节。

供参考,Apple 的布道者通常会拒绝公开回答有关 Web 上类似原生功能的其他问题。

请看在 Twitter 上提出的这个问题:

Apple 一直在回答 Maximiliano 一天中的问题,但是,呃,出于 某些 原因,只有 这个问题 没有得到回答!:grimacing:

6 个赞

哦,天哪,我喜欢这种细节程度,感谢您写出来。希望它能在 iOS 的 WKWebView 和主屏幕应用上运行 :crossed_fingers:t2:

很高兴看到我不是唯一一个关注那个主题演讲的人。:wink:

我不确定为什么它不会在 iOS 16 的第一个版本中发布,但不管怎样……

macOS 难道不是已经支持了吗?我好几年前就能收到来自 MacRumors 的 Safari 推送通知了。也许他们当时用的是某种变通方法?:thinking:

2 个赞

正如我在之前的帖子中所说:

1 个赞

啊,抱歉。我不太确定你的意思。:see_no_evil:

1 个赞

今天的视频细节非常少。Meet Web Push for Safari - WWDC22 - Videos - Apple Developer

WebKit 今天发布了一篇博文。

这里有更多细节。

在 Safari WWDC 休息室,一位名叫“John”的用户问了一个问题:“Web 推送在 WKWebView 实例中有效吗?”来自苹果的“Brady E”回答说:

在 macOS Ventura 上,Web 推送仅在 Safari 16 中受支持。

John 接着问:“iOS/iPadOS 呢?”Brady 回答说:“请关注 2023 年的 iOS/iPadOS 支持。”所以,他们今天不回答任何关于 iOS 支持的问题。

我认为 Web 推送通知在 2023 年的 WKWebView 中极不可能有效,尤其是在 iOS 上,所以我预计 Safari Web 推送将不会直接使 Discourse Hub 受益。

但是,当然,当 Safari Web 推送推出时,Discourse Hub 应用程序的重要性将大大降低。

6 个赞

感谢您关注苹果公司,并在此撰写后续报道🙏🏻

Discourse Hub 应用还有一些其他的好处。

不过你说的基本正确。它很快就会部分过时。我想知道 CDCK 是否会完全放弃它…… :thinking:

1 个赞

Its About Time GIFs | Tenor

顺便说一句,我们没有计划放弃移动应用程序,它仍然非常有用,可以让你在一个地方聚合你所有的 discourse 站点和通知,并且可以独立于接收实时通知。

3 个赞

将 Discourse Hub 作为 PWA 引入 Web 是否有意义?

4 个赞

这不幸的是目前不在我们的路线图上,但我个人很希望看到它,这是一个很棒的主意 :slight_smile:

7 个赞