【问题标题】:Parse push notification results 0 sent解析推送通知结果 0 发送
【发布时间】:2015-04-25 16:45:11
【问题描述】:

遇到推送通知问题,想知道是否有人可以提供帮助,我正在尝试使用此查询向特定用户发送推送通知.....它位于包含 PFObjects 和用户详细信息的 for 循环中。我的设置没有任何问题,因为我的消息页面(聊天)上有类似的代码,它为每个成员发送推送。我正在使用正确的用户名检索解析数据库上的推送,但没有发送任何内容:/不知道问题是什么?也许值得一提的是,有些用户没有安装设置?但我正在使用一个确实有这个设置的用户。任何帮助将不胜感激我的代码如下。

  var pushQuery:PFQuery = PFInstallation.query()
  pushQuery.whereKey("user", equalTo: pushObject["username"])
  var push:PFPush = PFPush()
  push.setQuery(pushQuery)
  push.setMessage("New Task")
  push.sendPushInBackgroundWithBlock({ (success: Bool, error: NSError!) -> Void in
          if (success){
             println("worked?")
          } else {
             println( "this is an error \(error.localizedDescription)")
          }
  })

【问题讨论】:

  • 你真的“工作”了吗?还是你得到一个“错误”?
  • 是的,对不起,我应该这么说...因为我认为错误是由于它试图一次发送到许多推送,因为最初我使用的是 sendPush(nil)。但是是的,取决于从查询返回的用户数量是我回来“工作”的时间量吗?这确实有效
  • 所以它在某些情况下有效,在其他情况下无效?
  • 不,在我在这里提供的这个函数的情况下它不起作用,但是对于一个单独的类,当一个用户向另一个用户发送消息时我发送一个新通知它工作正常.因此,为什么我认为这可能是一对一的情况,我认为让我感到困惑的是,它会显示在解析推送中……但它说没有发送推送。

标签: ios swift parse-platform push-notification


【解决方案1】:

我相信推送的目标是这里的问题。

  pushQuery.whereKey("user", equalTo: pushObject["username"])

这行似乎是问题所在,因为 Installation 类通常将 "user" 键存储为 PFUserobjectID 或直接作为指针。无论哪种方式,匹配username 可能都不是正确的方法。你需要的是一个额外的查询,匹配username,并返回一个用户,这将匹配安装查询:

var innerQuery : PFQuery = PFUser.query()
innerQuery.whereKey("username", equalTo: pushObject["username"])
var pushQuery = PFInstallation.query()
pushQuery.whereKey("user", matchesQuery: innerQuery)

我刚刚从正常运行的 Obj-C 代码中翻译了这个,所以我希望它可以在 Swift 中工作,但这是您需要根据用户的用户名向安装发送推送的一般想法。

【讨论】:

  • 感谢您的有用评论,最终解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
相关资源
最近更新 更多