2

我发现本教程声称可以使用以下 HTML5 API 的组合来完成:

  • 通知 API
  • 服务工作者 API
  • 推送 API

显然,这需要所有 3 个才能工作,但是当我在 caniuse 中搜索它们时,似乎没有任何一个移动浏览器支持所有三个 API。还有其他方法可以解决这个问题吗?

4

2 回答 2

1

没错,您需要结合使用这三个 API 才能向移动设备发送异地(类似应用程序的)通知。目前唯一支持它们的浏览器是 Android 上的 Chrome。

  • Service Worker 是一种在后台运行一些 Javascript 功能的方法,即使网站关闭也是如此
  • Push API 建立在服务工作者之上,并提供了一种在收到推送信号时激活它的方法。它还描述了如何通过浏览器制造商的服务器从您的服务器传播推送信号,以及如何收集设备端点(允许您向设备发送推送通知的秘密 URL)
  • Notification API 用于构建和显示通知

如果您使用Pushpad之类的服务(我是创始人),将推送通知添加到您的 Web 应用程序不会花费太多时间,因此您可能会开始支持 Android,当其他设备支持 Web 推送时,您将获得它们免费,无需更改您的代码。

于 2016-05-07T07:35:20.810 回答
0

caniuse.com上的信息不准确。在Service Worker Cookbook with Chrome for Android v50 中尝试这个简单的 PUSH 演示,您将看到它的工作原理。

无论如何回答您的问题,如果您正在使用纯 Web 应用程序,则显示本机通知的唯一方法是通过 Web Notifications API,然后您可以通过 websockets 模拟推送通知,服务器发送事件并使用NavigatorOnLine API在在线时重新连接但是您需要用户保持浏览器运行。

请注意,能够使用 Push API 的浏览器至少部分暗示了对 Service Worker 的支持。

于 2016-05-11T08:12:54.610 回答