为啥在 Web 推送库上使用推送通知服务?
Posted
技术标签:
【中文标题】为啥在 Web 推送库上使用推送通知服务?【英文标题】:Why use a push notification service over a Web Push library?为什么在 Web 推送库上使用推送通知服务? 【发布时间】:2018-08-26 08:40:21 【问题描述】:我打算将推送通知添加到我的网络应用程序。
据我了解,要向我的用户推送通知,我可以使用 web push library 并直接发送通知,或者使用 OneSignal、Firebase Cloud Messaging 或 Batch.com 等推送通知服务。
据我了解,这些服务提供了一种一站式解决方案,不仅可以通过 Web 推送方式发送通知,还可以向 ios 和 android 应用程序发送通知。
如果我现在只专注于 Web 推送,我应该知道直接在 Web 推送库上使用这些服务之一有什么优势吗?
【问题讨论】:
注意:我不确定 *** 是否是提出这个问题的最佳站点,如果您认为不是,版主请迁移到另一个站点。 【参考方案1】: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 解决方案。
【讨论】:
我奖励赏金并接受您的回答,因为您已经最好地解释了这两种方法之间的差异。感谢大家的意见,+1。【参考方案2】:对我个人而言,在进行自己的实施时最重要的一点是您可以控制一切。这意味着当 AWS 失去一个区域或定价发生变化并且您再也负担不起时,您的通知不会失败。没有任何提供商可以因为您分发的内容或用户的投诉而禁止您。您可以实现自己的逻辑以在前端显示通知,例如 stacking them 或拥有自己的分段规则(例如付费用户与免费层)。我什至不是在说custom subscription UI。您的消息中没有奇怪的版权。
据我了解,这些服务提供了一站式解决方案,不仅可以通过 Web Push 发送通知,还可以向 iOS 和 Android 应用程序发送通知。
当您拥有处理应用程序事件和发送通知的服务器逻辑时,将它与移动推送通知一起工作的范围应该不难。唯一改变的是您订阅设备的方式。
最后但并非最不重要的一点 - 开发很有趣。我想这更像是个人问题,但我喜欢学习新事物:)
希望能帮助您做出决定。
【讨论】:
我会更加强调供应商的依赖性,因为所有供应商都提供他们自己的系统,如果以及当您出于某种原因必须切换时,这将是非常痛苦的【参考方案3】:您可以在不使用第三方库的情况下向您的网站实施推送通知。您需要从客户端获取订阅令牌并将此订阅令牌存储到服务器(内部数据库)。当您想向用户发送推送通知之后,您只需调用端点(订阅令牌中提到了端点)。就是这样。
由于安全风险和管理订阅令牌,开发人员更喜欢使用 firebase、AWS 推送通知或 onesignal.com 服务。这些服务是可选的,您根本不需要。
阅读链接introduction to push notification 和lab code examples。稍后我将使用简单的工作代码进行更新,以进一步参考您的问题。
【讨论】:
【参考方案4】:这取决于你想要什么。无法使用 iOS Safari 进行 Web-Push。对于 iOS 通知,您必须使用服务或构建自己的应用程序。 我使用 Pushover 从脚本和软件通知自己。这可能是也可能不是解决方案,具体取决于您拥有多少用户、发送多少通知以及您的用户使用 Pushover 等网络应用(或 iOS 上的应用)的意愿。
当事情发生变化时,服务会继续通知。所以对你来说应该是更少的维护。
【讨论】:
【参考方案5】:如果您还想定位 iOS 访问者,这是不可能的,因为 iOS 不支持网络推送通知。
要避免这种情况,您需要使用第三方服务,例如Wise Notifications。
另一种方法是构建一个 iOS 应用并发送原生推送通知。
【讨论】:
以上是关于为啥在 Web 推送库上使用推送通知服务?的主要内容,如果未能解决你的问题,请参考以下文章