iOS 进阶---推送通知之本地通知
1、推送通知的2种方式
1)本地推送通知(Local Notification)
2)远程推送通知(Remote Notification)
2、通知的作用
可以让不在前台运行的app,告知用户app内部发生了什么事情
3、使用场景
常用来定时提醒用户完成一些任务,比如清理垃圾、记账、买衣服、看电影、玩游戏
4、推送通知的5中不同的效果
1)在屏幕顶部显示一块横幅(显示具体内容)
2)在屏幕中间弹出一个UIAlertView(显示具体内容)
3)在锁屏界面显示一块横幅(锁屏状态下,显示具体内容)
4)更新app图标的数字(说明新内容的数量)
5)播放音效(提醒作用)
5、推送通知的主要事项
1)发出推送通知时,如果当前程序正运行在前台,那么推送通知就不会被呈现出来
2)点击推送通知后,默认会自动打开发出推送通知的app
3)不管app打开还是关闭,推送通知都能如期发出
6、什么是本地推送和应用场景
本地推送:就是不需要联网就能发出的推送通知(不需要服务器的支持)
应用场景:常用来定时提醒用户完成一些任务,比如清理垃圾、记账、买衣服、看电影、玩游戏
下面在代码中分析一下本地通知的各个属性:
1.在AppDelegate的.m文件中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//1.iOS8需要添加请求用户的授权
if ([UIDevice currentDevice].systemVersion.floatValue >=8.0) {
UIUserNotificationSettings * settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound categories:nil];
[application registerUserNotificationSettings:settings]; }
return YES;
}
2.在VC的.m文件中
// 1.创建本地通知
UILocalNotification *localNote = [[UILocalNotification alloc] init]; // 1.1.设置什么时间弹出
localNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:]; // 1.2.设置弹出的内容
localNote.alertBody = @"CN EZ"; // 1.3.设置锁屏状态下,显示的一个文字
localNote.alertAction = @"DOTA2"; // 1.4.显示启动图片
//localNote.alertLaunchImage = @""; // 1.5.是否显示alertAction的文字(默认是YES)
localNote.hasAction = YES; // 1.6.设置音效
localNote.soundName = UILocalNotificationDefaultSoundName; // 1.7.应用图标右上角的提醒数字
localNote.applicationIconBadgeNumber = ; // 1.8.设置UserInfo来传递信息
// localNote.userInfo = @{@"alertBody" : localNote.alertBody, @"applicationIconBadgeNumber" : @(localNote.applicationIconBadgeNumber)}; // 2.调度通知
[[UIApplication sharedApplication] scheduleLocalNotification:localNote];
3、其余属性的简单介绍:
@property(nonatomic,copy) NSDate *fireDate; // 设置本地推送的时间
@property(nonatomic,copy) NSTimeZone *timeZone; // 时区
@property(nonatomic) NSCalendarUnit repeatInterval; // 重复多少个单元发出一次
@property(nonatomic,copy) NSCalendar *repeatCalendar; // 设置日期
@property(nonatomic,copy) CLRegion *region NS_AVAILABLE_IOS(8_0); // 比如某一个区域的时候发出通知
@property(nonatomic,assign) BOOL regionTriggersOnce NS_AVAILABLE_IOS(8_0); // 进入区域是否重复
// user info
@property(nonatomic,copy) NSDictionary *userInfo;
此次Demo的源码下载:https://github.com/fengzhihao123/LocalNotification
最新文章
- 游戏编程系列[1]--游戏编程中RPC协议的使用[2]--Aop PostSharp篇
- CentOS系统MySQL双机热备配置
- Spring中的IOC\DI\AOP等概念的简单学习
- 有关git的换行符的处理问题
- ODI 12.1.3发布,提升支持大数据的能力
- quartz 数据表字典
- office365 development
- 【索引】Android相关的
- Blend制作TextButton和ImageButton
- 这是一款可以查阅Github上的热门趋势的APP
- mysql中配置ssl_key、ssl-cert、ssl-ca的路径及建立ssl连接
- 输入法设置,SublimeTest,putty掉线
- vi命令详解(转)
- BZOJ3736 : [Pa2013]Karty
- (网页)javascript如何用递归写一个简单的树形结构
- android资讯类软件框架《IT蓝豹》
- MySQL千万级数据分区存储及查询优化
- JS模块化编程(一):CommonJS,AMD/CMD
- 2018.09.19 atcoder AtCoDeer and Rock-Paper(贪心)
- 廖雪峰的python学习网址