使用 Parse Sdk 从应用推送通知
Push notification from app using Parse Sdk
我正在使用 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];
`
我认为问题是您没有正确设置推送查询,您需要查询安装..
需要这样的设置:
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];
也可能是您的数据字典中没有 "alert" 的问题。如果您希望推送正常工作,我认为这是必需的密钥,请尝试:
NSDictionary *data = @{@"alert": txtFieldMessage.text, Message_SenderName : applicationDelegate.userInfo.userName, Message_ReceiverName : self.selectedBuddy.userName, @"sound": @“”};
我正在使用 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];
`
我认为问题是您没有正确设置推送查询,您需要查询安装..
需要这样的设置:
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];
也可能是您的数据字典中没有 "alert" 的问题。如果您希望推送正常工作,我认为这是必需的密钥,请尝试:
NSDictionary *data = @{@"alert": txtFieldMessage.text, Message_SenderName : applicationDelegate.userInfo.userName, Message_ReceiverName : self.selectedBuddy.userName, @"sound": @“”};