当应用程序在后台时向用户发送通知

Posted

技术标签:

【中文标题】当应用程序在后台时向用户发送通知【英文标题】:Sending Notifications to user while app is in background 【发布时间】:2018-01-07 20:28:01 【问题描述】:

从 Firebase 到 App 委托,我对此进行了大量研究,但我不太了解。当其他人在我的应用程序中发布内容时,我正在尝试向用户发送通知 - 例如在 Instagram 或社交媒体上发布通知。有人可以为我指出正确的方向吗?提前非常感谢!

【问题讨论】:

到目前为止你做了什么? 看看这个教程怎么样 appcoda.com/firebase-push-notifications 否则发布你一直在尝试的内容 @MauricioChirino 好的,所以我有一个本地通知的代码,它可以工作,这个代码可以激活它:Database.database().reference().child("(mySchool!)/posts ").observe(.childAdded, with: (snapshot) in self.notifyNewPost() ) 所以当有新帖子 (.childAdded) 时,我会发出通知。我要把它放在 app-delegate 中吗? 我同意@UpholderOfTruth 的观点,你必须分享更多的代码才能了解你的上下文。 如果您试图通知用户运行他们的应用程序版本的其他人添加了新帖子,那么该通知也需要在您的应用程序之外生成。然后,您的应用程序只会响应该通知,但它是生成的。 【参考方案1】:

概述

如果您已为 Firebase 云消息传递 (FCM) 设置 ios 应用,则当用户首次打开您的应用时,应用会与 google 服务器通信并生成特定于该设备的令牌。

什么是令牌?

令牌就像一个设备标识符。您使用该令牌告诉 Firebase 您希望它向哪个确切设备发送通知。 (令牌在卸载和重新安装应用程序时会发生变化,甚至可能在恢复时发生变化)。

在后端

现在,您必须配置您的应用程序以将该令牌发送到您的后端并将其存储为当前登录用户的令牌之一。(这应该在他们每次从该设备登录时发生,您应该删除它用户注销时来自服务器的令牌)。

每当您需要发送通知时,您都必须向 FCM 服务器发出 POST 请求。此 POST 请求将包含设备令牌和通知内容,以及其他授权信息。详细说明在 Send a Notification Message

【讨论】:

我可以通过编程方式发送通知吗?或者是在控制台中手动执行此操作的唯一方法? 如果您使用 Firebase 来管理您的数据库,那么您可能想了解 Firebase 云功能。您可以触发功能来发送通知。您可以在此处参考文档:firebase.google.com/docs/functions/database-events?authuser=0 这篇文章也可能对您有所帮助:skcript.com/svr/using-firebase-cloud-functions 如果您想根据用户的活动发送通知(例如,当我向您发送文本时)您可以配置您的应用程序,以便当我发送文本时,请 Firebase也发送通知。为此,请参阅我回答的最后一段

以上是关于当应用程序在后台时向用户发送通知的主要内容,如果未能解决你的问题,请参考以下文章

应用程序在后台运行时发送本地通知 Swift 2.0

当汽车到达特定半径时如何发送推送通知

当用户到达特定位置时向用户发送推送通知 [IOS]

Quickblox“离线用户的自动推送通知”不起作用

当应用程序在后台时向服务器发送纬度和经度

用户终止应用通知 (iOS)