2014-11-30 3 views
2

У меня есть это приложение для iOS, которое получает push-уведомление от сервера, в push-сообщении он содержит URL-адрес. Теперь у моего приложения есть контроллер таблеток и 4 вкладки, каждая вкладка содержит веб-просмотр, как я могу открыть URL-адрес и загрузить страницу в одном из веб-просмотров сразу после получения push-уведомления?iOS получает удаленное уведомление и открывает URL-адрес

Я был в состоянии получить URL из сообщения уведомления, как это:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { 
    NSLog(@"userInfo: %@",[userInfo description]); 
    NSLog(@"alert: %@",[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]); 
    NSLog(@"alert: %@",[[userInfo objectForKey:@"aps"] objectForKey:@"url"]); 
} 

Но получил stucked здесь, как я не могу понять, как дать WebView знает, что это время, чтобы загрузить этот адрес в настоящее время , Обратите внимание, что обработка push-уведомлений происходит в appDelegate.m, но мой веб-просмотр находится в другом диспетчере представлений.

+1

NsnotificationCentre вероятно, самый простой – Paulw11

ответ

3

Благодаря Paulw11, мне удалось решить с помощью NSNotification: В appDelegate.m:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"ReceivedPushNotification" object:userInfo]; 
} 

и в контроллере представления, который должен получить уведомление:

- (void)viewDidLoad 
{ 
    ... 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(performTask:) name:@"ReceivedPushNotification" object:nil]; 

} 
- (IBAction)performTask:(NSNotification *) notification 
{ 
    NSLog(@"notification received"); 
    NSLog(@"%@", notification.object); 
    NSLog(@"alert: %@", [[notification.object objectForKey:@"aps"] objectForKey:@"url"]); 
    [self.webview_main loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[[notification.object objectForKey:@"aps"] objectForKey:@"url"]]]]; 
} 
Смежные вопросы