【问题标题】:Angular PWA push notificationsAngular PWA 推送通知
【发布时间】:2020-05-04 03:21:19
【问题描述】:

我已阅读有关 PWA 和推送通知的文档。但是,我不清楚以下策略,因为我将这些概念与 pubsub 策略联系起来。 我需要什么:当用户被分配某些任务(通过另一个后端服务发生)时,我会在我的 web 应用程序上以 chrome 向用户显示通知

到目前为止,我所做的是创建带有 PWA 的 Angular 应用程序,并且通知为 mentioned here。我需要单击应用程序上的某个按钮才能获得通知。但这不是我想要的。如果分配了任何任务,我想通知用户(用户可能会或可能不会积极使用我的应用程序)。

我是否需要定期从角度调用subscribeToNotifications 来检查是否有任务。这让我很困惑。谁能解释一下这些是如何工作的?

【问题讨论】:

    标签: angular push-notification progressive-web-apps


    【解决方案1】:

    subscribeToNotifications 基本上只调用一次。 该功能的目的是请求用户发送推送通知的权限,以及接收订阅信息并保存。 所以调用subscribeToNotifications函数一次后,就不需要再调用该函数了,因为用户的订阅信息已经保存好了,你可以根据订阅信息随时发送通知。

    更多细节:

    向用户发送通知需要用户的第一个权限。这实际上是示例 from this article that you broughtsubscribeToNotifications 函数的第一部分:

    this.swPush.requestSubscription({
        serverPublicKey: this.VAPID_PUBLIC_KEY
    })
    

    如果用户允许通知,您需要保存订阅对象。订阅对象中的信息是向该用户发送推送通知所必需的。

    这是该示例的延续,在.then 部分中,您可以获得订阅。 newsletterService 中的addPushSubscriber 函数负责保存它。

    this.swPush.requestSubscription({
         serverPublicKey: this.VAPID_PUBLIC_KEY
    })
    .then(sub => this.newsletterService.addPushSubscriber(sub).subscribe())
    

    现在对象已保存,您可以使用该对象通过 webpush 库发送推送通知。

    【讨论】:

      猜你喜欢
      • 2019-04-21
      • 2021-06-11
      • 2019-04-01
      • 2019-05-17
      • 2021-07-20
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      • 2021-08-23
      相关资源
      最近更新 更多