博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
本地推送UILocalNotification
阅读量:5221 次
发布时间:2019-06-14

本文共 2490 字,大约阅读时间需要 8 分钟。

OS 4.0之后,我们就多了一种推送选择,即本地推送,可以减轻一些服务器的压力。今天和大家简单分享下iOS4里的本地推送。 1、增加一个本地推送//设置20秒之后 NSDate *date = [NSDate dateWithTimeIntervalSinceNow:20];    //创建一个本地推送    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 = 1;        //设置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 -= 1;} 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;        }} 原文地址:http://tr4work.blog.163.com/blog/static/1371493142011815101737243/

 

转载于:https://www.cnblogs.com/jiackyan/archive/2013/04/14/3019907.html

你可能感兴趣的文章
数据库锁机制及乐观锁,悲观锁的并发控制
查看>>
图像处理中双线性插值
查看>>
RobHess的SIFT代码解析之RANSAC
查看>>
03 线程池
查看>>
201771010125王瑜《面向对象程序设计(Java)》第十三周学习总结
查看>>
手机验证码执行流程
查看>>
python 基础 ----- 变量
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
:hover 鼠标同时触发两个元素变化
查看>>
go语言学习十三 - 相等性
查看>>
Idea 提交代码到码云(提交到github也大同小异)
查看>>
c#连接excel2007未安装ISAM解决
查看>>
Mono 异步加载数据更新主线程
查看>>
初识lua
查看>>
我是插件狂人,jDuang,jValidator,jModal,jGallery
查看>>
张季跃 201771010139《面向对象程序设计(java)》第四周学习总结
查看>>
如何解除循环引用
查看>>
android中fragment的使用及与activity之间的通信
查看>>
字典【Tire 模板】
查看>>