ios - 无论如何保存推送通知?

标签 ios swift parse-platform push-notification

当用户 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.")
        }
    }

}

最佳答案

您可能应该反过来做,创建一个表来保存新的“MeetingInvites”,每当添加新条目时,都会向相应的用户发送推送通知。

使推送通知成为实际新条目的副作用。不要使条目成为推送通知的副作用。

这也将为您省去必须处理丢失的通知的麻烦 - 也许接收用户打开应用程序,然后某事崩溃并且您的推送通知和所有连接的数据都将丢失.

更详细一点:为位置创建一列,为“请求”用户创建一列,为“合作伙伴”创建一列。在您的代码中,将 currentUser 设置为请求者,将合作伙伴设置为……嗯……合作伙伴。然后在您的客户端设备或服务器上创建推送消息。在这两种情况下,都将推送消息发送给“合作伙伴”。

关于ios - 无论如何保存推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34403764/

相关文章:

ios - 获取具有 alpha 值的纯色版本,同时考虑下面的颜色

ios - RealmSwift : Module Compiled with Swift 3. 0 不能用Swift 3.0.2导入

javascript - HttpRequest 使用来自数组 Parse.com Cloudcode 的多个 URL

ios - 快速使用解析的帖子标签

ios - XMPPFramework/iOS 问题 : send and receive subscription

ios - object_setInstanceVariable 与 CGPoint

ios - 如何在 UIButton 上只添加顶部边框?

ios - Swift 3 - 多 View Controller 错误

java - Xamarin 中的 Android ParsePushBroadcastReceiver

ios - 访问系统。破坏性的红色按钮颜色