Chandan kumar
Chandan kumar

Reputation: 1084

Local Notifications with iOS 8

Local notification are working well in foreground. but I need to perform some background work when a notification banner displays. It is working well when I tap on the banner when local notifications appear.

Code:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (notification)
    {
        NSLog(@"AppDelegate didFinishLaunchingWithOptions");
        [self application:application didReceiveLocalNotification:notification];
    }
    return YES;
}

My problem is similar to this issue

I used code below to perform background task:

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
    dispatch_async(dispatch_get_main_queue(), ^{

      [[ReminderManger sharedMager]  handleNotification:[[notification userInfo] objectForKey:@"reminderId"]];

    });

   }

Upvotes: 0

Views: 84

Answers (1)

Saad
Saad

Reputation: 8947

There is no way to do that. Notifications are handled by iOS itself. If app would be handling this, there might be some way to get this figured out. I've been wasting my time over it but didn't succeed.

The only thing you can do is to get extended permission from iOS that your app need multi tasking in background. And then in background make your app become post local notifications, this will show banner whenever you want but you can't customize the banner. See Apple's line "An app that is running in the background may also schedule a local notification to inform the user of an incoming message, chat, or update." at this link

Now the thing is in background, you cant change your views, but parse data, and based on this you can make changes at time of launch.

Upvotes: 1

Related Questions