解析推送通知结果 0 发送
Posted
技术标签:
【中文标题】解析推送通知结果 0 发送【英文标题】:Parse push notification results 0 sent 【发布时间】: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)。但是是的,取决于从查询返回的用户数量是我回来“工作”的时间量吗?这确实有效 所以它在某些情况下有效,在其他情况下无效? 不,在我在这里提供的这个函数的情况下它不起作用,但是对于一个单独的类,当一个用户向另一个用户发送消息时我发送一个新通知它工作正常.因此,为什么我认为这可能是一对一的情况,我认为让我感到困惑的是,它会显示在解析推送中……但它说没有发送推送。 【参考方案1】:我相信推送的目标是这里的问题。
pushQuery.whereKey("user", equalTo: pushObject["username"])
这行似乎是问题所在,因为 Installation 类通常将 "user"
键存储为 PFUser
的 objectID
或直接作为指针。无论哪种方式,匹配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 中工作,但这是您需要根据用户的用户名向安装发送推送的一般想法。
【讨论】:
感谢您的有用评论,最终解决了这个问题。以上是关于解析推送通知结果 0 发送的主要内容,如果未能解决你的问题,请参考以下文章