How to delete all local notifications when an application is deleted from an iPhone
Solution 1
As others have mentioned, I think the best way to accomplish this is to have a flag in didFinishLaunchingWithOptions in the application delegate that checks if it is the first launch or not.
If the app is being launched for the first time, you can call
[[UIApplication sharedApplication] cancelAllLocalNotifications];
This will cancel any existing notifications.
For example:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
// this flag will need to be stored somewhere non-volatile such as using CoreData
// or user defaults
if(flag == nil || [flag count] ==0){
[[UIApplication sharedApplication] cancelAllLocalNotifications];
// update your flag so that it fails this check on any subsequent launches
flag = 1;
}
{
Solution 2
Here's what I did:
In Your AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Check if its first time
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"is_first_time"]) {
[application cancelAllLocalNotifications]; // Restart the Local Notifications list
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:YES] forKey:@"is_first_time"];
}
return YES;
}
Hope it helps!
Solution 3
For swift 3.0 you can use
if (isFirstLaunch){
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
}
Then add this method to check if this is the first run
var isFirstLaunch: Bool {
get {
if (NSUserDefaults.standardUserDefaults().objectForKey("firstLaunchDate") == nil) {
NSUserDefaults.standardUserDefaults().setObject(NSDate(), forKey: "firstLaunchDate")
NSUserDefaults.standardUserDefaults().synchronize()
return true
}
return false
}
}
![Nimit Parekh](https://i.stack.imgur.com/gwRTM.jpg?s=256&g=1)
Nimit Parekh
About Me My name is Nimit Parekh. I am a IOS Application developer in India. I have 5+ years development experience in IOS Application and Learning games development in cocos2d. I am a skilled in webdevelopment, as well as a iOS Development Blogger on SugarTin #SOreadytohelp I am available for contract work and doubts. [email protected] For everything else, please contact me at: [email protected]
Updated on March 17, 2020Comments
-
Nimit Parekh over 4 years
Let's say I set 5 local notification for an iPhone application, then the user deletes the app. If the app is installed again, it shows the previous notifications.
I know the following code deletes all notifications
[[UIApplication sharedApplication] cancelAllLocalNotifications];
But where do I put that code so that it executes when the application is deleted?
Or any other way to solve this problem.