Push-уведомление в приложении

Я успешно настроил сервер push-уведомлений MySQL + PHP, и все работает нормально и отлично, за исключением одной вещи. Если пользователь находится в приложении, он не получает push-уведомления, что немного раздражает. Есть ли способ изменить это, чтобы оно отображало push-уведомление в Центре уведомлений или что-то в этом роде?

Спасибо за помощь в продвижении!


person MZimmerman6    schedule 21.09.2012    source источник


Ответы (2)


Когда приложение работает ниже, вызывается метод

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

Вы не можете ничего добавить в центр уведомлений с помощью SDK. Если уведомление получено, когда приложение не работает под управлением iOS, добавьте его в центр уведомлений. Вы можете показать предупреждение в приведенном выше методе, как это

if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive)
{
   //show alert
}
person msk    schedule 21.09.2012

Если ваш пользователь находится в приложении, ваше приложение получит сообщение делегату приложения. Видеть

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

в документации Apple

Вы не можете поместить уведомление в центр уведомлений, пока приложение открыто. Центр уведомлений предназначен для захвата уведомлений, которые происходят, когда приложение неактивно. Однако вызов делегата приложения полезен, поскольку вы можете отображать уведомление пользователю любым удобным для вас способом, включая создание собственной анимации в стиле центра уведомлений, если это то, что вы хотите.

person jackslash    schedule 21.09.2012
comment
Большое спасибо, я думаю, что могу использовать это для отображения UIAlertView или чего-то подобного, что будет делать по сути то же самое. - person MZimmerman6; 21.09.2012
comment
Не похоже, что эта функция вызывается, когда на телефон приходит push-уведомление. Push-уведомления приходят после того, как я закрываю приложение. - person MZimmerman6; 22.09.2012
comment
Ничего, вдруг заработает. Не знаю, почему. Я ничего не менял. Ну я не жалуюсь :) - person MZimmerman6; 22.09.2012
comment
Если идентификатор приложения правильный и соответствует идентификатору приложения профиля обеспечения, а все сертификаты для APNS актуальны и соответствуют идентификатору приложения, приложение работает на реальном устройстве, вызвало - (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types и успешно зарегистрировалось, И iPhone получает уведомление. пока приложение работает, метод всегда будет вызываться в делегате приложения. Довольно много вещей, которые могут пойти не так ;) - person jackslash; 22.09.2012