Перенаправление кнопки окна предупреждения - PullRequest
2 голосов
/ 12 сентября 2011

Я хотел бы знать, можем ли мы на самом деле перенаправить окно оповещения на конкретный вид.Это означает, что когда они нажали на «Вид», который находится в уведомлении об уведомлении, он перенаправит их в определенный вид, как всплывающее уведомление текстового сообщения.Есть ли идеи о том, как это работает?

1 Ответ

0 голосов
/ 12 сентября 2011

Исходя из вашего вопроса, вы можете иметь в виду два типа диалоговых окон предупреждений:

  1. упомянутый вами "общий ящик оповещения" или UIAlertView
  2. A UILocalNotification диалоговое окно с предупреждением, которое отображается, когда приложение находится в фоновом режиме («как всплывающее уведомление с текстовым сообщением»)

Я буду обращаться к ним по порядку.


Во-первых, как обрабатывать UIAlertView нажатие кнопки «Просмотр».

Реализуйте метод alertView:didDismissWithButtonIndex: протокола UIAlertViewDelegate в вашем классе контроллера, и когда вы init, UIAlertView установите его delegate в self. Затем, когда пользователь нажимает кнопку, отмеченную, например, «Просмотр», сделать это:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    if([[alertView buttonTitleAtIndex:buttonIndex] isEqualToString:@"View"])
    {
        // take the user to a specific view
    } else { // handle other cases if you have any

    }
}

Во-вторых, как обработать UILocalNotification, который запускает запуск приложения.

Apple Docs на UILocalNotification состояние:

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

С другой стороны, если локальное уведомление обозначает только значок приложения, а пользователь в ответ запускает приложение, вызывается метод application: didFinishLaunchingWithOptions:, но объект UILocalNotification не включается в словарь параметров.

Вам нужно написать код для обработки этого случая запуска в классе делегата приложения, в методе application:didFinishLaunchingWithOptions:.

Если вы получили UILocalNotification во время работы приложения, Apple Docs сообщит:

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


РЕДАКТИРОВАТЬ: Чтобы сразу перейти к конкретному представлению пользователя, вы можете вручную вставить что-то в стек UINavigationController (если ваше приложение обычно работает с контроллерами навигации, оно имеет смысл сделать это), или представить модальный контроллер вида . Я связал там с руководствами для обоих.

...