使用 Parse Sdk 从应用推送通知

Posted

技术标签:

【中文标题】使用 Parse Sdk 从应用推送通知【英文标题】:Push notification from app using Parse Sdk 【发布时间】:2015-06-27 13:10:45 【问题描述】:

我正在使用 parse sdk 向特定用户发送推送通知? 问题是,如果接收者用户的应用程序在发送通知时正在运行,那么它工作正常,但如果接收者应用程序在发送推送通知时没有运行,它不会收到任何推送徽章或警报。我在做什么错?请看代码。` PFQuery *pushQuery = [PFInstallation query];

[pushQuery whereKey:Key_UserName equalTo:self.selectedBuddy.userName];

PFObject *object = [PFObject objectWithClassName:ClassName_Message];
object[Message_MessageText] = txtFieldMessage.text;
object[Message_SenderName] = applicationDelegate.userInfo.userName;
object[Message_ReceiverName] = self.selectedBuddy.userName;
[object saveInBackground];

NSDictionary *data = @
                       Message_MessageText : txtFieldMessage.text,
                       Message_SenderName : applicationDelegate.userInfo.userName,
                       Message_ReceiverName : self.selectedBuddy.userName
                       ;

// Send push notification to query
PFPush *push = [[PFPush alloc] init];
[push setQuery:pushQuery]; // Set our Installation query
[push  setData:data];
[push sendPushInBackground];
`

【问题讨论】:

如果用户在前台获取它,那么这不是您的推送语法的问题。您需要验证您是否遵循了正确订阅用户推送通知的程序 【参考方案1】:

我认为问题是您没有正确设置推送查询,您需要查询安装..

需要这样的设置:

PFQuery *usernameQuery = [PFUser query];
                    [usernameQuery whereKey:@"username" equalTo:aName];
                    PFQuery *pushQuery = [PFInstallation query];
                    [pushQuery whereKey:@"user" matchesQuery:usernameQuery];

您还必须确保在您的安装中有一个用户名字段,即每次用户登录时您都需要:

 PFInstallation *installation = [PFInstallation currentInstallation];
                    installation[@"user"] = [PFUser currentUser];
                    [installation saveInBackground];

您的数据字典中没有“警报”也可能是一个问题。如果您希望推送正常工作,我认为这是必需的密钥,请尝试:

NSDictionary *data = @@"alert": txtFieldMessage.text, Message_SenderName : applicationDelegate.userInfo.userName, Message_ReceiverName : self.selectedBuddy.userName, @"sound": @“”;

【讨论】:

但是为什么应用接收者应用在运行时会收到通知。 试试这个 NSDictionary *data = @@"alert": txtFieldMessage.text, Message_SenderName : applicationDelegate.userInfo.userName, Message_ReceiverName : self.selectedBuddy.userName, @"sound": @“” ; 非常感谢兄弟。 :)

以上是关于使用 Parse Sdk 从应用推送通知的主要内容,如果未能解决你的问题,请参考以下文章

推送通知未在Android 8.0中使用解析sdk显示

Parse:从应用发送推送通知

推送通知:从 GCM 更改为 Parse

使用 Parse 从一个用户向另一个用户发送推送通知

使用 parse.com 处理应用程序中的推送通知

无法从 Parse 仪表板发送推送通知