如何在不使用parse.com创建频道的情况下将推送通知发送到特定设备?

时间:2013-07-06 10:17:06

标签: ios push-notification apple-push-notifications parse-platform

在我的ios应用中,我正在使用 Parse.com api  有两个视图控制器,视图控制器1呈现我的朋友fb个人资料照片。 视图控制器2显示朋友配置文件。现在我想发送推送通知给我的FB id我选择的朋友。  我可以在没有创建频道的情况下以fb id为目标吗?

我正在尝试使用代码,

//View Controller 1

//Register current user after login

-(void)registerUserForPushNotification
{
PFUser *user = [PFUser currentUser];
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
[currentInstallation setObject:user forKey:@"Owner"];
[[PFUser currentUser] setObject:CurrentUserFacebookId forKey:@"fbId"];
[currentInstallation saveInBackground];
}


//View controller 2
//Send Push notification to  friend
-(void)sendPushNotification
{

// get the PFUser object for current user
PFQuery *userQuery=[PFUser query];
[userQuery whereKey:@"fbId" equalTo:ClientFBId];//ClientFBId is my friend's FB id

// send push notification to the user
PFQuery *pushQuery = [PFInstallation query];
[pushQuery whereKey:@"Owner" matchesQuery:userQuery];
PFPush *push = [PFPush new];
[push setQuery: pushQuery];
NSString *message=[[CurrentUserName stringByAppendingString:@" "]stringByAppendingString:@"sent you ilu"];    
[push setData: @{ @"alert":message}]; 
[push sendPush: nil];
}

我搜索了文档。一切都好。它甚至在parse.com上显示我的推送通知。但它说"你发送了这个推送通知给0个收件人。"在parse.com上的推送通知选项卡上。

任何猜测都错了吗?

请注意: - 我不是向所有朋友发送推送通知,而是一次只向一位朋友发送推送通知。所以我想,我不必创建一个频道。

2 个答案:

答案 0 :(得分:1)

发现我的问题中提到的每一步都是正确的。两个代码都没有问题。 我注意到我的应用程序没有在解析控制台上接收设备令牌。所以我认为我的证书可能存在问题。

重新生成证书,并配置推送通知并再次创建配置文件。

这让它运转了。现在在解析控制台上接收设备令牌并获取推送通知。 这是逐步说明的link。 不要错过任何一个。它帮助你们!

答案 1 :(得分:0)

Parse允许您通过任一通道发送推送消息,或直接发送到安装(设备)。

重要的是要知道单个用户可能有多个与之相关的安装 - 例如,他们可能拥有iPhone和iPad。您需要将推送消息发送给两者。

由于您已将两个视图控制器合并在一起,因此很难判断您发布了什么。我假设您的第二个视图控制器user是您尝试向其发送推送通知的用户?你如何获得代表朋友的PFUser对象?也许分享这些代码,你可能会得到更多的帮助。