iOS / Parse - 向特定用户发送推送通知

时间:2015-05-25 09:50:27

标签: ios objective-c parse-platform push-notification

我正在开发一个应用程序,允许“当前用户”查看其他用户发布的事件。当前用户加入活动时,我想向发布活动的用户发送推送通知。我已经使用Parse为我的应用设置了推送通知。我可以通过频道向所有用户发送推送通知,但我仍然无法弄清楚如何向特定用户发送推送通知。我能够在手机上收到推送通知。

我尝试将设备与具有以下代码的用户相关联:

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

不幸的是 - 这会让我的应用程序崩溃。不确定为什么没有错误消息。

我正在考虑使用以下代码将推送通知发送给特定用户。 (这是我从Parse文档中获得的代码)

// Create our Installation query
PFQuery *pushQuery = [PFInstallation query];
[pushQuery whereKey:@"injuryReports" equalTo:YES];

// Send push notification to query
PFPush *push = [[PFPush alloc] init];
[push setQuery:pushQuery]; // Set our Installation query
[push setMessage:@"Willie Hayes injured by own pop fly."];
[push sendPushInBackground];
  1. 如何将安装与当前用户相关联?
  2. 我是否走在正确的轨道上?
  3. 如果你知道一个好的教程,请告诉我,或者你是否已经实现了类似的东西,可以帮助我解决这个问题。
  4. 谢谢,

1 个答案:

答案 0 :(得分:4)

首先需要在用户和它的安装之间建立关系。请记住,iOS上的通知会发送到设备,因为Apple通知系统对您的用户一无所知。

[[PFInstallation currentInstallation] setObject:[PFUser currentUser] forKey:@"user"];
[[PFInstallation currentInstallation] saveEventually];

现在您的代码更易于使用:

// Create our Installation query
PFQuery *pushQuery = [PFInstallation query];
// only return Installations that belong to a User that
// matches the innerQuery
[query whereKey:@"user" matchesQuery: pushQuery];

// Send push notification to query
PFPush *push = [[PFPush alloc] init];
[push setQuery:pushQuery]; // Set our Installation query
[push setMessage:@"Willie Hayes injured by own pop fly."];
[push sendPushInBackground];