反正有保存推送通知吗?

Posted

技术标签:

【中文标题】反正有保存推送通知吗?【英文标题】:Is there anyway to save push notifications? 【发布时间】:2015-12-21 20:24:26 【问题描述】:

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


【问题讨论】:

【参考方案1】:

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

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

这还可以让您免去处理丢失通知的麻烦 - 可能接收用户打开应用程序,然后 某事 崩溃并且您的推送通知和所有连接的数据都将丢失.

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

【讨论】:

好的,是的,我认为这将是一个更好的方法。在解析结束时,我将如何构建类?就像条目一样。假设用户 a 想向用户 b 发送一条“消息”,说在 x 位置与我会面。我将如何构造该类,以便当用户 a 发送它时,它将出现在用户 b 的设备上。 @stackerleet 我在其中包含了一小段内容。

以上是关于反正有保存推送通知吗?的主要内容,如果未能解决你的问题,请参考以下文章

向所有客户端发送推送通知?

如果我更新推送通知证书,推送通知会在我的旧应用程序上工作吗?

苹果的推送通知服务可靠吗?

我们可以控制推送通知的“允许推送通知”对话框 ios 吗?

推送通知到达时间

可以使用推送通知在不通知用户的情况下运行代码吗?