2015-02-17 3 views
0

Я занимаюсь некоторыми исследованиями, но, похоже, не могу заставить это работать. Есть ли способ представить UIAlertView в вашем приложении после того, как человек получил push-уведомление, когда приложение было в фоновом режиме или неактивно? Я попытался ввести код в didReceiveRemoteNotification, но он работает только тогда, когда приложение активно. Может ли кто-нибудь указать мне в правильном направлении?Настоящий UIAlertView для пользователя после того, как приложение становится активным ПОСЛЕ получения уведомления о нажатии

+0

В этом случае пользователь открывает приложение, прокручивая push-сообщение в центре сообщений? В этом случае вы получите сообщение в параметрах запуска в applicationDidFinishLaunching: NSDictionary * userInfo = [startOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey]; –

+0

@ JesperSchläger Это должно быть от запуска приложения в любом случае, а не только из центра уведомлений. –

+0

В таком случае получить эту информацию прямо из iOS невозможно :-). Вы должны получить информацию с сервера, который вы использовали для отправки сообщения. –

ответ

1

В соответствии с документацией - [Приложение UIApplicationDelegate: didReceiveRemoteNotification] get вызывается только тогда, когда приложение находится на переднем плане. Начиная с iOS7 вы должны использовать - [приложение UIApplicationDelegate: didReceiveRemoteNotification: fetchCompletionHandler:], которое будет вызываться как на переднем плане, так и в фоновом режиме.

Таким образом, вы можете запретить любое изменение пользовательского интерфейса, когда приложение находится в фоновом режиме (например, отображение UIAlertView будет проигнорировано). Однако вы можете установить флаг - [приложение UIApplicationDelegate: didReceiveRemoteNotification: fetchCompletionHandler:], а затем, когда его проверите и представите UIAlertView in - [UIApplicationDelegate applicationWillEnterForeground:].

+0

Спасибо! Это сработало для меня! :) –

Смежные вопросы