应用程序didReceiveRemoteNotification未被调用

时间:2015-07-06 01:42:39

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

我正在使用Parse的推送框架实现推送通知。我将应用程序委托中的所有内容设置为Parse指示。我知道它正在工作,因为当我运行示例代码Parse提供时,推送通知正常工作(当我在didReceiveRemoteNotification中放置一个断点时,我可以看到它被调用了。)

PFQuery* pushQuery = [PFUser query];
[pushQuery whereKey:@"deviceType" equalTo:@"ios"];  

// Send push notification to query
[PFPush sendPushMessageToQueryInBackground:pushQuery
                               withMessage:@"Hello World!"];    

当我在我的应用程序中运行上述代码时(按下测试按钮),我立即收到一条“Hello World”的通知。所以后端工作正常,我能够接收通知。

这是我最终想要运行的代码:

PFQuery* usersQuery = [PFUser query];
PFQuery* pushQuery = [usersQuery whereKey:@"joinedIDsAr" containsAllObjectsInArray:[[NSArray alloc] initWithObjects:myID, nil]];   //get all users who subscribed to my broadcast 

//NSArray* usersAr = [pushQuery findObjects];

[PFPush sendPushMessageToQueryInBackground:pushQuery
                               withMessage:[NSString stringWithFormat:@"%@ has a new message for you to share!", myDisplayName]
                                block:^(BOOL succeeded, NSError * __nullable error)
                                {
                                    if(succeeded)
                                    {
                                        NSLog(@"Success!");
                                    }
                                    else
                                    {
                                        NSLog(@"ShareScheduleVC::sendSharePushNotif: error: %@", error);
                                    }
                                }];

当上面的代码执行时,我得到成功消息(并且错误总是为零)。但是didReceiveRemoteNotification中的断点命中,我没有收到推送通知。带有usersAr的注释掉的行是我尝试测试查询是否正在检索正确的对象;是的,我的PFUser对象被退回了。所以问题不是空查询。

据我所知,初始测试代码和上面的代码之间进行了很多更改,因此我使用了Parse的示例代码,只更改了一行和消息文本:

PFQuery* usersQuery = [PFUser query];
PFQuery* pushQuery = [usersQuery whereKey:@"joinedIDsAr" containsAllObjectsInArray:[[NSArray alloc] initWithObjects:myID, nil]];   //get all users who subscribed to my broadcast 

// Send push notification to query
[PFPush sendPushMessageToQueryInBackground:pushQuery
                               withMessage:[NSString stringWithFormat:@"%@ has a new message for you to share!", myDisplayName]];

我得到同样的问题; didReceiveRemoteNotification未被调用,我可以确认我的查询包含我的PFUser对象,但我没有收到任何通知。

我把头发拉出来......还有其他人有这个问题吗?或者可以发现我犯过的一个明显的错误?任何线索从哪里开始将不胜感激。所有这一切都在我创建推送通知后立即发生,而我的应用程序正在运行...没有在后台运行的问题,我还没有那么远!我只是希望能够发送自定义通知。

(另外,我可以自由地更改消息文本而不会导致问题......当我修改查询以查找deviceType之外的其他内容时,我遇到了问题。但我可以看到查询不是空的!我此时唯一的猜测就是我的PFUser对象没有连接到我的设备,所以即使它正在寻找我的用户帐户也无法找到我的设备。但为什么测试代码那么工作呢?

0 个答案:

没有答案