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. 游戏编程系列[1]--游戏编程中RPC协议的使用[2]--Aop PostSharp篇
  2. CentOS系统MySQL双机热备配置
  3. Spring中的IOC\DI\AOP等概念的简单学习
  4. 有关git的换行符的处理问题
  5. ODI 12.1.3发布,提升支持大数据的能力
  6. quartz 数据表字典
  7. office365 development
  8. 【索引】Android相关的
  9. Blend制作TextButton和ImageButton
  10. 这是一款可以查阅Github上的热门趋势的APP
  11. mysql中配置ssl_key、ssl-cert、ssl-ca的路径及建立ssl连接
  12. 输入法设置,SublimeTest,putty掉线
  13. vi命令详解(转)
  14. BZOJ3736 : [Pa2013]Karty
  15. (网页)javascript如何用递归写一个简单的树形结构
  16. android资讯类软件框架《IT蓝豹》
  17. MySQL千万级数据分区存储及查询优化
  18. JS模块化编程(一):CommonJS,AMD/CMD
  19. 2018.09.19 atcoder AtCoDeer and Rock-Paper(贪心)
  20. 廖雪峰的python学习网址

热门文章

  1. js-textarea文本换行符处理,Java后端以及js前端如何处理
  2. 对于Android NDK编译器ARM和Thumb模式的理解
  3. adf笔记
  4. 处理事件冒泡,阻止默认事件工具类,兼容IE
  5. Openssl rand命令
  6. CENTOS7 YUM安装BOOST1.53(静态版本)
  7. JavaScript排序,不只是冒泡
  8. CodeForces 682B Alyona and Mex (题意水题)
  9. Linux基础系统权限
  10. git 恢复被修改的文件