Как узнать, в каком состоянии находится приложение, в результате уведомления? - PullRequest
1 голос
/ 21 августа 2011

У меня настроено UILocalNotification, и, насколько я вижу, у меня есть 5 разных сценариев:

  1. Приложение не запущено, пользователь выбирает просмотр уведомления, поэтому он запускаетприложение.
  2. Приложение не запущено, пользователь решает закрыть уведомление, а затем открывает приложение позднее.
  3. Приложение работает в фоновом режиме, пользователь выбираетпросмотреть уведомление, чтобы оно выводило приложение на передний план.
  4. Приложение работает в фоновом режиме, пользователь выбирает закрыть уведомление, а затем открывает приложение, перенося его на передний план позднее.
  5. Приложение работает на переднем плане.

Как мне справиться с этими 5 различными сценариями?

Ответы [ 2 ]

2 голосов
/ 21 августа 2011
  1. Введите код в application:didFinishLaunchingWithOptions:.В действиях NSDictionary вы найдете информацию об уведомлении.

  2. Вы можете снова проверить application:didFinishLaunchingWithOptions:, если локальное уведомление все еще активно, и предпринять соответствующие действия.

  3. Введите код в applicationWillEnterForeground:

  4. Снова в том же месте, просто проверьте, есть ли активные локальные уведомления.

  5. Здесь вы можете проверить application:didReceiveLocalNotification: и либо уведомитьпользователь или нет.

0 голосов
/ 21 августа 2011

Не совсем уверен, что вы ищете, но следующее может ответить на ваш вопрос.

Из документации :

Когда система доставляетПри локальном уведомлении может происходить несколько вещей, в зависимости от состояния приложения и типа уведомления.Если приложение не является передним и видимым, система отображает предупреждающее сообщение, обозначает приложение и воспроизводит звук - все, что указано в уведомлении.Если уведомление является предупреждением, и пользователь нажимает кнопку действия (или, если устройство заблокировано, перетаскивает ползунок действия), приложение запускается.В приложении: didFinishLaunchingWithOptions: метод делегат приложения может получить объект UILocalNotification из словаря переданных опций с помощью ключа UIApplicationLaunchOptionsLocalNotificationKey.Делегат может проверить свойства уведомления и, если уведомление включает в себя пользовательские данные в своем словаре userInfo, он может получить доступ к этим данным и обработать их соответствующим образом.С другой стороны, если локальное уведомление обозначает только значок приложения, а пользователь в ответ запускает приложение, вызывается application: didFinishLaunchingWithOptions: метод, но в словаре опций нет объекта UILocalNotification.

Если приложение является основным и видимым, когда система доставляет уведомление, предупреждение не отображается, значок не помечается значком и звук не воспроизводится.Однако приложение: didReceiveLocalNotification: вызывается, если его реализует делегат приложения.Экземпляр UILocalNotification передается в этот метод, и делегат может проверить его свойства или получить доступ к любым пользовательским данным из словаря userInfo.

...