iOS實現本地通知
本地通知,local notification,用於基於時間行為的通知,比如有關日歷或者todo列表的小應用。另外,應用如果在後台執行,iOS允許它在受限的時間內運行,它也會發現本地通知有用。比如,一個應用,在後台運行,向應用的服務器端獲取消息,當消息到達時,比如下載更新版本的提示消息,通過本地通知機制通知用戶。
本地通知是UILocalNotification的實例,主要有三類屬性:
scheduled time,時間周期,用來指定iOS系統發送通知的日期和時間;
notification type,通知類型,包括警告信息、動作按鈕的標題、應用圖標上的badge(數字標記)和播放的聲音;
自定義數據,本地通知可以包含一個dictionary類型的本地數據。
對本地通知的數量限制,iOS最多允許最近本地通知數量是64個,超過限制的本地通知將被iOS忽略。
如果就寫個簡單的定時提醒,是很簡單的,比如這樣:
UILocalNotification *localNotif = [[UILocalNotification alloc] init]; if (localNotif == nil) return; //localNotif.fireDate = itemDate; //NSDate * now = [NSDate new]; NSDate * date1 = [NSDate dateWithTimeInterval:8 sinceDate:date]; localNotif.fireDate = date1; NSLog(@"now = %@",date1); localNotif.timeZone = [NSTimeZone defaultTimeZone]; // Notification details localNotif.alertBody = @"吃飯時間到了,通知提醒 。。。。。。。。"; // Set the action button localNotif.alertAction = @"View"; localNotif.soundName = UILocalNotificationDefaultSoundName; localNotif.applicationIconBadgeNumber = 1; // Specify custom data for the notification NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"someValue" forKey:@"someKey"]; localNotif.userInfo = infoDict; // Schedule the notification [[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; [localNotif release]; // NSArray * array = [[UIApplication sharedApplication] scheduledLocalNotifications]; // [[UIApplication sharedApplication] cancelAllLocalNotifications]; // [[UIApplication sharedApplication] cancelLocalNotification:localNotif];