[cpp]
UILocalNotification *notification = [[UILocalNotification alloc] init];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
//觸發通知的時間
NSDate *now = [formatter dateFromString:@"15:00:00"];
notification.fireDate = now;
//時區
notification.timeZone = [NSTimeZone defaultTimeZone];
//通知重複提示的單位,可以是天、周、月
notification.repeatInterval = NSDayCalendarUnit;
//通知內容
notification.alertBody = @"這是一個新的通知";
//通知被觸發時播放的聲音
notification.soundName = UILocalNotificationDefaultSoundName;
//執行通知註冊
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
以上代碼實現了這麼一個情境:一些Todo和鬧鐘類應用都有通知使用者的功能,使用的就是iOS中的本地通知UILocalNotification,還有些應用會在每天、每周、每月固定時間提示使用者回到應用看看,也是用的本地通知,以上程式碼片段就是實現了在每天的下午3點彈出通知提示。
如果要在通知中攜帶參數資訊,可以使用下面的方式:
[cpp]
NSDictionary *dic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"];
notification.userInfo = dic;
如果軟體是在運行中,則可以通過AppDelegate中的回調方法擷取並處理參數資訊:
[cpp]
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
if (notification) {
NSDictionary *userInfo = notification.userInfo;
NSString *obj = [userInfo objectForKey:@"key"];
NSLog(@"%@",obj);
}
}
另外,可以通過兩種方式取消註冊的本地通知,一種是取消指定的通知,第二種是取消所有的註冊通知:
[cpp]
[[UIApplication sharedApplication] cancelLocalNotification:localNotification];
[[UIApplication sharedApplication] cancelAllLocalNotification];
以上就簡要介紹了一下UILocalNotification的使用,歡迎大家指正和補充!