注:按Home鍵讓App進入背景運作時,方可檢視通知。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// 注冊本地通知
UILocalNotification *localnotifit = [[UILocalNotification alloc] init];
if (localnotifit) {
// 擷取通知時間
NSDate *now = [NSDate date];
localnotifit.timeZone = [NSTimeZone defaultTimeZone];
// 10秒後開始通知
localnotifit.fireDate = [now dateByAddingTimeInterval:10.0];
// 重複間隔 (下限為每分鐘通知一次)
localnotifit.repeatInterval = kCFCalendarUnitMinute;
// 提醒内容
localnotifit.alertBody = @"十秒後手機将會爆炸,趕快扔掉";
// 鎖屏狀态下,“滑動來”(這三個字是系統自動出現的)後面緊接着文字就是alertAction
localnotifit.alertAction = @"解鎖(進入App)";
// 通知欄裡的通知标題
localnotifit.alertTitle = @"提示";
// 預設的通知聲音(隻有在真機上才會聽到)
localnotifit.soundName = UILocalNotificationDefaultSoundName;
// 紅色圈圈數字
localnotifit.applicationIconBadgeNumber = 1;
// 通知辨別
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObject:@"LocalNotificationID" forKey:@"key"];
localnotifit.userInfo = dic;
// 将通知添加到系統中
[[UIApplication sharedApplication] scheduleLocalNotification:localnotifit];
}
// 注冊通知(iOS 8之後的注冊通知方法,iOS 8以前暫不做介紹)
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
return YES;
}
// 接收到通知後觸發的方法,隻有在App進入前台的時候才會執行。
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"恭喜你上當了" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"我很開心", nil];
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[alert show];
// 取消通知
// [[UIApplication sharedApplication] cancelAllLocalNotifications];
}