iOS 本地推送通知
1.什么是本地推送通知
不需要联网的情况下,应用程序经由系统发出的通知
2.本地推送的使用场景
定时提醒,如玩游戏、记账、闹钟、备忘录等
3.实现本地推送通知的步骤
- 创建本地推送通知的对象UILocalNotification
- 设置本地推送通知对象的属性
- fireDate 推送的时间
- alertBody 通知的内容
- alertName 锁屏时的标题
- soundName 音效名称
- applicationIconBadgeNumber 徽章显示的数字
- timeZone 时区
- 等等
3. 将通知排入到应用程序中
4.点击通知内容的处理
- 应用没有关闭,在后台
- 自动进入前台
- 自动调用AppDelegate下的didReceiveLocalNotification方法
- 应用已关闭
- 自动进入应用
- 自动执行AppDelegate下的didFinishLaunchingWithOptions方法
5.代码
- 写在AppDelegate.m中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if ([UIDevice currentDevice].systemVersion.doubleValue >= 8.0) {//iOS8以后需要询问用户是否允许接收通知
//一下代码回实现的效果是
//第一次运行程序,系统弹出一个提示框
//询问用户是否允许接收通知
UIUserNotificationType noteType = UIUserNotificationTypeAlert | UIUserNotificationTypeSound | UIUserNotificationTypeBadge;
UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:noteType categories:nil];
[application registerUserNotificationSettings:setting];
} //如果是因为点击查看了通知而启动了应用程序
//那么通知的信息都会存在launchOptions参数中
UILocalNotification *notification = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey];
if (notification != nil) {//点通知进来的
UILabel *label = [[UILabel alloc]init];
label.frame = CGRectMake(, , , );
label.backgroundColor = [UIColor blueColor];
label.numberOfLines = ;
label.font =[UIFont systemFontOfSize:];
label.textColor = [UIColor whiteColor];
label.text = [NSString stringWithFormat:@"3333333%@",notification.userInfo];
[self.window.rootViewController.view addSubview:label];
[application setApplicationIconBadgeNumber:];
}
return YES;
} /*
1.App在前台,通知到了,直接自动执行该方法
2.App在后台,通知到了,点击查看通知,该方法才执行
3.App已经退出,通知到了,点击查看通知,此方法不执行,但是didFinishLaunchingWithOptions方法一定会被执行,通知传入的参数也可以在launching方法中获取到
*/
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
UILabel *label = [[UILabel alloc]init];
label.frame = CGRectMake(, , , );
label.backgroundColor = [UIColor grayColor];
label.numberOfLines = ;
label.font =[UIFont systemFontOfSize:];
label.textColor = [UIColor whiteColor];
//alertBody用于存储显示的通知的文字内容
//uesrInfo用于存储额外要传递的通知内容
label.text = [NSString stringWithFormat:@"%@",notification.userInfo];
[self.window.rootViewController.view addSubview:label];
//去掉应用程序图标中出现的红色数字提醒
[application setApplicationIconBadgeNumber:];
}
- 写在注册通知的位置
//1.创建本地通知对象
UILocalNotification *notification = [[UILocalNotification alloc] init]; //2.设置通知的一些属性
notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:];//10秒后发通知
notification.alertBody = @"这是一条新的通知";
notification.userInfo = @{@"name":@"张三",
@"age":@
};
notification.applicationIconBadgeNumber = ; //3.将通知添加到应用程序的日程清单中
UIApplication *application = [UIApplication sharedApplication];
[application scheduleLocalNotification:notification];
demo:https://github.com/TigerCui/LocalNotification.git
iOS 本地推送通知的更多相关文章
- (七十三)iOS本地推送通知的实现
iOS的推送通知分为本地推送和网络推送两种,如果App处于挂起状态,是可以发送本地通知的,如果已经被杀掉,则只有定时通知可以被执行,而类似于QQ的那种网络消息推送就无法实现了,因为App的网络模块在被 ...
- IOS之推送通知(本地推送和远程推送)
推送通知和NSNotification是有区别的: NSNotification:是看不到的 推送通知:是可以看到的 IOS中提供了两种推送通知 本地推送通知:(Local Notification) ...
- iOS 进阶---推送通知之本地通知
1.推送通知的2种方式 1)本地推送通知(Local Notification) 2)远程推送通知(Remote Notification) 2.通知的作用 可以让不在前台运行的app,告知用户app ...
- iOS 远程推送通知
1.什么是推送通知 在某些特殊情况下,应用程序被动收到的以不同种界面形式出现的提醒信息 推送通知的作用:可以让不在前台运行的app通知app发生了改变 iOS中得推送通知种类 远程推送通知(Remot ...
- Swift 本地推送通知UILocalNotification
Notification是智能手机应用开发中常用的信息传递机制,它不用消耗更多资源去不停的检查信息状态,可以非常好的节省资源. 在iOS中分为两种通知:本地.远程.本地的UILocalNotifica ...
- IOS 本地推送(UILocalNotification)
推送通知 ● 注意:这里说的推送通知跟NSNotification有所区别 • NSNotification是抽象的,不可见的 • 推送通知是可见的(能用肉眼看到) ● iOS中提供了2种推送通知 ● ...
- iOS 10推送通知开发
原文地址:Developing Push Notifications for iOS 10,译者:李剑飞 虽然通知经常被过度使用,但是通知确实是一种获得用户关注和通知他们需要更新或行动的有效方式.iO ...
- iOS 远程推送通知 详解
1: ios本地通知和远程通知 http://wangjun.easymorse.com/?p=1482 2: 苹果远程通知服务申请激活例图 (外国佬写的.) http://mobiforge.com ...
- 81、iOS本地推送与远程推送详解
一.简介 分为本地推送和远程推送2种.可以在应用没打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户石否同意,如果同意则正常使用:如果用户不同意则下次打开程序 ...
随机推荐
- EF循环迭代导致如此严重的性能丢失,你知道?
前言 在工作当中呢,没怎么用到过EF,所以为了遗忘这一部分知识,偶尔会去写写小的demo,偶然机会在EF循环迭代中发现居然影响性能这么严重,当我们在用时或许大概也许可能都曾这样写过,但是你注意到了吗, ...
- YII 的源码分析(二)
上一篇简单分析了一下yii的流程,从创建一个应用,到屏幕上输出结果.这一次我来一个稍复杂一点的,重点在输出上,不再是简单的一行"hello world",而是要经过view(视图) ...
- ECharts使用心得
ECharts百度旗下图标插件,在展示地图.雷达图等方面有很好的支持. 应用场景: 自动生成X轴的数据: 设置:xAxis的type=value || type=time 并且设置series的dat ...
- weight属性你用的真的6嘛?
相信大家在日常开发中一定使用过weight这个属性,它的作用一个是权重,另一个就是渲染优先级,但是你真的能很6的使用它嘛?如果不是,那么请继续往下看!!! 我们知道,当weight起到不同作用的时候, ...
- JavaScrict中的断言调试
今天在看忍者秘籍的时候,看到一个断言方法.查阅了一下资料,原来javascript中的console也包含这个方法.具体用法如下: <script type="text/javascr ...
- 1Z0-053 争议题目解析486
1Z0-053 争议题目解析486 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 486.You execute the following Recovery Manager (R ...
- 理解HTTP协议
在互联网时代HTTP协议的重要性无需多言,对于技术岗位的同学们来说理解掌握HTTP协议是必须的.本篇博客就从HTTP协议的演进.特性.重要知识点和工作中常见问题的总结等方面进行简单的介绍.理解掌握了这 ...
- 【原创】轻量级移动端即时通讯技术 MobileIMSDK 发布了
申明:MobileIMSDK目前为个人原创开源工程,投入了大量的时间和精力,希望对需要的人有所帮助.如需与作者交流,见文章底部个人签名处,互相学习.Q群:215891622,欢迎共同志趣者学习和交流. ...
- 【十大经典数据挖掘算法】kNN
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 引言 顶级数据挖掘会议ICDM ...
- SQL Server安全(11/11):审核(Auditing)
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...