経由でプッシュ通知を送信しようとしています
PFPush *push = [PFPush push];
[push setQuery:pushQuery];
[push setPushToIOS:YES];
[push setData:data];
[push sendPushInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (!succeeded)
WMLog(@"Push sending Error: %@", error);
else
WMLog(@"Push Sent.");
}];
どういうわけか、parse.com のプッシュ通知リストに、プッシュ通知を受け取ったサブスクライバーの数が表示されています。ただし、一部のデバイスで受信しないと同時に、一部のデバイスがその通知を受信し、すべてのデバイスがすべてのプッシュ通知を受信する場合があります。では、デバイスで通知が受信されないことがある理由は何でしょうか。お返事をお待ちしております。
編集: コードは:
PFQuery *requestFromQuery = [PFQuery queryWithClassName:kMPFRequestsClassKey];
[requestFromQuery whereKey:kMPFActivityStatusKey equalTo:kMPFFriendStateConnected];
[requestFromQuery whereKey:kMPFActivityFriendKey equalTo:objC.objUser];
PFQuery *fromQuery = [PFQuery queryWithClassName:kMPFReflectionsClassKey];
[fromQuery whereKey:kMPFUsersClassKey matchesKey:kMPFUsersClassKey inQuery:requestFromQuery];
PFQuery *requestToQuery = [PFQuery queryWithClassName:kMPFRequestsClassKey];
[requestToQuery whereKey:kMPFActivityStatusKey equalTo:kMPFFriendStateConnected];
[requestToQuery whereKey:kMPFUsersClassKey equalTo:objC.objUser];
PFQuery *toQuery = [PFQuery queryWithClassName:kMPFReflectionsClassKey];
[toQuery whereKey:kMPFUsersClassKey matchesKey:kMPFActivityFriendKey inQuery:requestToQuery];
PFQuery *reflectionsQuery = [PFQuery orQueryWithSubqueries:[NSArray arrayWithObjects:fromQuery, toQuery, nil]];
[reflectionsQuery orderByDescending:@"updatedAt"];
[reflectionsQuery setLimit:1000];
PFQuery *pushQueryFriends = [PFInstallation query];
[pushQueryFriends whereKey:kMPFInstallationUserKey matchesKey:kMPFUsersClassKey inQuery:reflectionsQuery];
PFQuery *pushQueryOwners = [PFInstallation query];
[pushQueryOwners whereKey:kMPFInstallationUserKey equalTo:objC.objUserReflectionOwner];
PFQuery *pushQuery = [PFQuery orQueryWithSubqueries:[NSArray arrayWithObjects:pushQueryFriends, pushQueryOwners, nil]];
[pushQuery whereKey:kMPFInstallationNotificationEnableKey equalTo:[NSNumber numberWithBool:YES]];
[pushQuery whereKey:kMPFInstallationUserKey notEqualTo:[PFUser currentUser]];