2013-11-29 4 views
5

Я искал вокруг какое-то время, пытаясь найти ответ, но я не могу найти его. То, что я пытаюсь сделать, - это заставить мое приложение отправлять локальное уведомление, когда приложение работает в фоновом режиме, и когда пользователь открывает уведомление, он отправит их на веб-сайт. У меня есть все настройки, но он продолжает открывать приложение вместо того, чтобы идти на сайт.открыть URL с локальным уведомлением ios

Мой вопрос есть, это даже можно сделать? И если бы вы могли увидеть, где я ошибся с моим кодом ниже? Спасибо за помощь.

КОД:

- (Недействительными) applicationDidEnterBackground: (UIApplication *) применение { // Используйте этот метод, чтобы освободить общие ресурсы, сохранить пользовательские данные, аннулированию таймеры, и хранить достаточно информации о состоянии приложения, чтобы восстановить приложение к его текущему состоянию в случае его прекращения позже. // Если ваше приложение поддерживает фоновое выполнение, этот метод вызывается вместо applicationWillTerminate: когда пользователь завершает работу.

NSDate *date = [NSDate date]; 
    NSDate *futureDate = [date dateByAddingTimeInterval:3]; 
    notifyAlarm.fireDate = futureDate; 
    notifyAlarm.timeZone = [NSTimeZone defaultTimeZone]; 
    notifyAlarm.repeatInterval = 0; 
    notifyAlarm.alertBody = @"Visit Our Website for more info"; 
    [app scheduleLocalNotification:notifyAlarm]; 

    if ([notifyAlarm.alertBody isEqualToString:@"Visit Our Website for more info"]) { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.bluemoonstudios.com.au"]]; 
    } 

ответ

7

В бизнес-логики

-(void)scheduleNotificationForDate:(NSDate *)fireDate{ 
    UILocalNotification *notification = [[UILocalNotification alloc] init]; 

    notification.fireDate = fireDate; 
    notification.alertAction = @"View"; 
    notification.alertBody = @"New Message Received"; 
    notification.userInfo = @{@"SiteURLKey": @"http://www.google.com"}; 
    [[UIApplication sharedApplication] scheduleLocalNotification:notification]; 

} 

в вашем AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; 

    if(notification != nil){ 
     NSDictionary *userInfo = notification.userInfo; 
     NSURL *siteURL = [NSURL URLWithString:[userInfo objectForKey:@"SiteURLKey"]]; 

     [[UIApplication sharedApplication] openURL:siteURL]; 
    } 
} 


-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{ 

    NSDictionary *userInfo = notification.userInfo; 
    NSURL *siteURL = [NSURL URLWithString:[userInfo objectForKey:@"SiteURLKey"]]; 
    [[UIApplication sharedApplication] openURL:siteURL]; 
} 
+0

спасибо за ваш ответ, как я это реализовать с кодом я уже показал выше? или это отдельно от этого? – user2632573

+0

Добро пожаловать. Проверьте отредактированный ответ. – idris

+0

Еще раз спасибо, но где вы имеете в виду под названием «В вашей бизнес-логике»? Мне жаль, но я все еще новичок в этом. Благодарим вас за понимание и вашу помощь. – user2632573

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