iOS本地推送與取消本地通知—UILocalNotification的使用
阿新 • • 發佈:2019-02-18
1.首先我們初始化一個 UISwith
self.swith = [[UISwitch alloc] initWithFrame:CGRectMake(80, 80, 160, 30)];
[_swith addTarget:self action:@selector(doLocalNotifition) forControlEvents:UIControlEventValueChanged];
[_swith setOn:NO];
[self.view addSubview:_swith];
2.實現UISwith的方法
- (void)doLocalNotifition { if (_swith.isOn==YES) { //初始化一個 UILocalNotification UILocalNotification * notification = [[UILocalNotification alloc] init]; NSDate * pushDate = [NSDate dateWithTimeIntervalSinceNow:10.0]; if (notification!=nil) { //設定 推送時間 notification.fireDate= pushDate; //設定 時區 notification.timeZone = [NSTimeZone defaultTimeZone]; //設定 重複間隔 notification.repeatInterval = kCFCalendarUnitDay; //設定 推送 時間 notification.soundName = UILocalNotificationDefaultSoundName; //設定 推送提示語 notification.alertBody = @"提示框內容5"; //設定 icon 上 紅色數字 notification.applicationIconBadgeNumber = 1; //取消 推送 用的 字典 便於識別 NSDictionary * inforDic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"]; notification.userInfo =inforDic; //新增推送到 Application [[UIApplication sharedApplication] scheduleLocalNotification:notification]; } NSLog(@"開啟本地通知"); }else if(_swith.isOn==NO){ //拿到 存有 所有 推送的陣列 NSArray * array = [[UIApplication sharedApplication] scheduledLocalNotifications]; //便利這個陣列 根據 key 拿到我們想要的 UILocalNotification for (UILocalNotification * loc in array) { if ([[loc.userInfo objectForKey:@"key"] isEqualToString:@"name"]) { //取消 本地推送 [[UIApplication sharedApplication] cancelLocalNotification:loc]; } } NSLog(@"關閉本地通知"); } }
程式碼地址:http://download.csdn.net/detail/u012405234/6432113