无论如何保存推送通知?
Is there anyway to save push notifications?
当用户 a 向用户 b 发送推送通知时,用户 b 将收到通知,但一旦他们单击它,该通知的有效负载就消失了。相反,当用户 b 打开通知时,通知中的有效负载将被保存以进行解析,因此他可以查看发送给他的所有通知。这就像一个通知历史。下面是我发送通知的代码。我需要有关如何在这些通知中保存负载的帮助,以便用户可以查看通知历史记录。
func pushNotifications(){
let userQuery: PFQuery = PFUser.query()!
userQuery.whereKey("objectId", containedIn: Array(setOfSelectedFriends))
let pushQuery: PFQuery = PFInstallation.query()!
pushQuery.whereKey("user", matchesQuery: userQuery)
let push = PFPush()
push.setQuery(pushQuery)
push.setMessage("\(username!) wants you to meet them at \(location!)")
push.sendPushInBackgroundWithBlock {
success, error in
if success {
print("The push succeeded.")
} else {
print("The push failed.")
}
}
}
你可能应该反过来做,做一个 table 在你保存新 "MeetingInvites" 的地方,每当一个新条目被添加时发送一个推送通知给相应的用户。
使推送通知成为实际新条目的副作用。不使条目成为推送通知的副作用。
这也可以让您省去处理丢失通知的麻烦 - 也许接收用户打开应用程序,然后 某事 崩溃,您的推送通知和所有连接的数据将丢失。
更详细一点:为位置创建一列,一列为 "requesting" 用户,一列为 "partner"。在您的代码中,将 currentUser 设置为请求者,将合作伙伴设置为……嗯……合作伙伴。然后在您的客户端设备或服务器上创建推送消息。在这两种情况下,都将推送消息发送到 "partner".
当用户 a 向用户 b 发送推送通知时,用户 b 将收到通知,但一旦他们单击它,该通知的有效负载就消失了。相反,当用户 b 打开通知时,通知中的有效负载将被保存以进行解析,因此他可以查看发送给他的所有通知。这就像一个通知历史。下面是我发送通知的代码。我需要有关如何在这些通知中保存负载的帮助,以便用户可以查看通知历史记录。
func pushNotifications(){
let userQuery: PFQuery = PFUser.query()!
userQuery.whereKey("objectId", containedIn: Array(setOfSelectedFriends))
let pushQuery: PFQuery = PFInstallation.query()!
pushQuery.whereKey("user", matchesQuery: userQuery)
let push = PFPush()
push.setQuery(pushQuery)
push.setMessage("\(username!) wants you to meet them at \(location!)")
push.sendPushInBackgroundWithBlock {
success, error in
if success {
print("The push succeeded.")
} else {
print("The push failed.")
}
}
}
你可能应该反过来做,做一个 table 在你保存新 "MeetingInvites" 的地方,每当一个新条目被添加时发送一个推送通知给相应的用户。
使推送通知成为实际新条目的副作用。不使条目成为推送通知的副作用。
这也可以让您省去处理丢失通知的麻烦 - 也许接收用户打开应用程序,然后 某事 崩溃,您的推送通知和所有连接的数据将丢失。
更详细一点:为位置创建一列,一列为 "requesting" 用户,一列为 "partner"。在您的代码中,将 currentUser 设置为请求者,将合作伙伴设置为……嗯……合作伙伴。然后在您的客户端设备或服务器上创建推送消息。在这两种情况下,都将推送消息发送到 "partner".