Я создал приложение для обмена сообщениями, которое похоже на Snapchat - один пользователь может отправлять изображения других пользователей. Я пытаюсь добавить push-уведомления в приложение, так что, когда сообщение отправляется из UserA в UserB, UserB получает push-уведомление "Новое сообщение от пользователяA".
Я изучаю это часами, и я чувствую, что очень близко.
Я пытаюсь использовать Parse для отправки push-уведомлений. Я бы хотел, чтобы он работал следующим образом: Когда UserA отправляет UserB сообщение, UserB также отправляет push-уведомление, в котором говорится "Новое сообщение от UserA". Я успешно смог использовать веб-сайт Parse для отправки push-уведомления устройствам с помощью приложения, но НЕ удастся успешно отправить push-уведомление из приложения (когда пользователь отправляет сообщение) на принимающее пользовательское устройство.
Push-уведомления, по-видимому, отправляются успешно, так как моя учетная запись Parse показывает отправленные мной сообщения. Однако на самом деле сообщения не доходят до предполагаемого устройства, а список push-уведомлений показывает 0 подписчиков для каждого push-уведомления.
И я могу нажать на один из них, чтобы увидеть подробности.
Кроме того, я пользуюсь профилем и сертификатом распределения/производства.
Здесь код, который я использую, отправляет push-уведомление после того, как UserA отправит сообщение в UserB - объект message
- это сообщение, которое было загружено в Parse, а messageRecipients - это пользователи, которые являются сообщением отправлено:
// Send Push Notification to recipients
NSArray *messageRecipients = [message objectForKey:@"recipientIds"];
PFQuery *pushQuery = [PFInstallation query];
[pushQuery whereKey:@"owner" containedIn:messageRecipients];
PFPush *push = [[PFPush alloc] init];
[push setQuery:pushQuery];
[push setMessage:[NSString stringWithFormat: @"New Message from %@!", [PFUser currentUser].username]];
[push sendPushInBackground];
Вот мои методы, связанные с AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[Parse setApplicationId:@"[This is where my app Id is]"
clientKey:@"[This is where client Id is]"];
[self customizeUserInterface];
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound];
return YES;
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[PFPush storeDeviceToken:deviceToken];
[PFPush subscribeToChannelInBackground:@""];
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
NSLog(@"Did fail to register for push, %@", error);
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
[PFPush handlePush:userInfo];
}
Я также опубликовал сообщение на форумах Parse.com: https://parse.com/info/sending-a-push-notification-from-one-user-to-another-user
Есть ли что-то, что мне не хватает или что-то не так?
EDIT: теперь я могу видеть подписчиков в моей учетной записи Parse, но на самом деле я не получаю push-уведомления на своем устройстве. То же самое происходит, когда я пытаюсь отправить тестовый запрос push с веб-сайта Parse.