我计划为我的网络应用添加推送通知功能。
据我所知,要向我的用户发送推送通知,我可以使用Web Push库直接传递通知,或者使用类似OneSignal、Firebase Cloud Messaging或Batch.com这样的推送通知服务。
据我所知,这些服务不仅提供Web Push通知,还可向iOS和Android应用程序发送通知的一站式解决方案。
如果我现在只关注Web Push通知,那么是否应该知道使用这些服务直接使用Web Push库的任何优势呢?
我计划为我的网络应用添加推送通知功能。
据我所知,要向我的用户发送推送通知,我可以使用Web Push库直接传递通知,或者使用类似OneSignal、Firebase Cloud Messaging或Batch.com这样的推送通知服务。
据我所知,这些服务不仅提供Web Push通知,还可向iOS和Android应用程序发送通知的一站式解决方案。
如果我现在只关注Web Push通知,那么是否应该知道使用这些服务直接使用Web Push库的任何优势呢?
Web Push是一项仍处于开发中且可能会有变更的标准。目前浏览器支持非常有限(请参见https://caniuse.com/#feat=push-api)。
优点是:您只需要一个API来管理所有支持的平台(包括桌面)。缺点是:您必须意识到并非所有平台都支持此标准。
使用通知SaaS解决方案来处理通知,可以让您处理所有平台。从后端发送通知将成为对通知SaaS服务的单个调用,但是您仍然需要注意,在Android、iOS和浏览器上希望具有原生通知的情况下,您将不得不在客户端应用程序中以不同方式处理这些平台的集成(请参见此处的示例,在Android应用程序中使用Google Cloud Message集成:https://firebase.google.com/docs/cloud-messaging/android/client)。
因此,您的决策应基于要支持的平台。 - 如果您可以通过支持非iOS设备上的Chrome、Firefox和Edge浏览器(或以不同方式处理iOS通知)来完成,则可以使用Web Push。 - 否则,我建议选择通知SaaS解决方案。
据我所了解,这些服务不仅提供Web Push通知,还提供iOS和Android应用程序的通知一站式解决方案。
当您已经具备处理应用程序事件和发送通知的服务器逻辑时,扩展它以与移动推送通知一起使用不应该很难。唯一改变的是设备订阅的方式。
最后但同样重要的是——这样开发很有趣。我猜这更多是个人喜好的问题,但我喜欢学习新事物 :)
希望这能帮助您做出决定。
如果你想要针对iOS访客,那么很遗憾,这是不可能的,因为iOS不支持网页推送通知。
为了绕过这个问题,你需要使用第三方服务,比如Wise Notifications。
另一种选择是构建一个iOS应用程序并发送本地推送通知。