本地推送UILocalNotification(转)
2024-10-19 05:29:53
1、增加一个本地推送
//设置20秒之后 NSDate *date = [NSDate dateWithTimeIntervalSinceNow:]; //chuagjian一个本地推送 UILocalNotification *noti = [[[UILocalNotification alloc] init] autorelease]; if (noti) { //设置推送时间 noti.fireDate = date; //设置时区 noti.timeZone = [NSTimeZone defaultTimeZone]; //设置重复间隔 noti.repeatInterval = NSWeekCalendarUnit; //推送声音 noti.soundName = UILocalNotificationDefaultSoundName; //内容 noti.alertBody = @"推送内容"; //显示在icon上的红色圈中的数子 noti.applicationIconBadgeNumber = ; //设置userinfo 方便在之后需要撤销的时候使用 NSDictionary *infoDic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"]; noti.userInfo = infoDic; //添加推送到uiapplication UIApplication *app = [UIApplication sharedApplication]; [app scheduleLocalNotification:noti]; }
2、程序运行时接收到本地推送消息
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification*)notification { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"接收到本地提醒 in app" message:notification.alertBody delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alert show]; //这里,你就可以通过notification的useinfo,干一些你想做的事情了 application.applicationIconBadgeNumber -= ; }
3、取消一个本地推送
UIApplication *app = [UIApplication sharedApplication]; //获取本地推送数组 NSArray *localArr = [app scheduledLocalNotifications]; //声明本地通知对象 UILocalNotification *localNoti; if (localArr) { for (UILocalNotification *noti in localArr) { NSDictionary *dict = noti.userInfo; if (dict) { NSString *inKey = [dict objectForKey:@"key"]; if ([inKey isEqualToString:key]) { if (localNoti){ [localNoti release]; localNoti = nil; } localNoti = [noti retain]; break; } } } //判断是否找到已经存在的相同key的推送 if (!localNoti) { //不存在 初始化 localNoti = [[UILocalNotification alloc] init]; } if (localNoti && !state) { //不推送 取消推送 [app cancelLocalNotification:localNoti]; [localNoti release]; return; } }
最新文章
- Python学习记录day4
- Java8-Function使用及Groovy闭包的代码示例
- ASP.NET MVC 学习之路由(URL Routing)
- AC日记——字符串判等 openjudge 1.7 17
- log4j总结
- C# .net 最大HTTP连接数
- js添加创建节点和合并节点
- 忘记commit的一次教训
- word2vec的艰难成长史
- [Redux] Extracting Presentational Components -- AddTodo
- Android进程
- 基于Visual C++2013拆解世界五百强面试题--题18-程序结果分析2-终结篇
- java用户界面—创建一个面板
- Ext:ComboBox实战
- js如何获取客户端IP
- 【设计模式系列】之OO面向对象设计七大原则
- TCP/IP协议三次握手与四次握手流程解析(转)
- BZOJ-7-2655: calc-DP-拉格朗日插值
- [Machine Learning] some concept about the CV
- 转发:C#操作SQL Server数据库