本地通知
本地推送通知
- 什么是本地推送通知
- 顾名思义,就是不需要联网就能发出的推送通知(不需要服务器的支持)
- 本地推送通知的使用场景
- 常用来定时提醒用户完成一些任务,比如
- 清理垃圾、记账、买衣服、看电影、玩游戏
2.1-如何发出本地推送通知
-
创建本地推送通知对象
UILocalNotification *ln = [[UILocalNotification alloc] init];
- 设置本地推送通知属性
- 推送通知的触发时间(何时发出推送通知)
@property(nonatomic,copy) NSDate *fireDate;
- 推送通知的具体内容
@property(nonatomic,copy) NSString *alertBody;
- 在锁屏时显示的动作标题(完整标题:“滑动来” + alertAction)
@property(nonatomic,copy) NSString *alertAction;
- 音效文件名
@property(nonatomic,copy) NSString *soundName;
- app图标数字
@property(nonatomic) NSInteger applicationIconBadgeNumber;
-
调度本地推送通知(调度完毕后,推送通知会在特地时间fireDate发出)
[[UIApplication sharedApplication] scheduleLocalNotification:ln];
- 获得被调度(定制)的所有本地推送通知
(已经发出且过期的推送通知就算调度结束,会自动从这个数组中移除)@property(nonatomic,copy) NSArray *scheduledLocalNotifications;
- 取消调度本地推送通知
-(void)cancelLocalNotification:(UILocalNotification *)notification; -(void)cancelAllLocalNotifications;
- 立即发出本地推送通知
-(void)presentLocalNotificationNow:(UILocalNotification *)notification;
2.2-本地推送通知的其他属性
-
每隔多久重复发一次推送通知
@property(nonatomic) NSCalendarUnit repeatInterval;
-
点击推送通知打开app时显示的启动图片
@property(nonatomic,copy) NSString *alertLaunchImage;
-
附加的额外信息
@property(nonatomic,copy) NSDictionary *userInfo;
-
时区
@property(nonatomic,copy) NSTimeZone *timeZone;
(一般设置为[NSTimeZone defaultTimeZone],跟随手机的时区)
2.3-点击本地推送通知
-
当用户点击本地推送通知,会自动打开app,这里有2种情况
-
app并没有关闭,一直隐藏在后台
- 让app进入前台,并会调用AppDelegate的下面方法(并非重新启动app)
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification;
- 让app进入前台,并会调用AppDelegate的下面方法(并非重新启动app)
-
app已经被关闭(进程已死)
- 启动app,启动完毕会调用AppDelegate的下面方法
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
- launchOptions参数通过UIApplicationLaunchOptionsLocalNotificationKey取出本地推送通知对象
- 启动app,启动完毕会调用AppDelegate的下面方法
-
posted on 2017-02-16 21:25 Littleredguy鲁 阅读(154) 评论(0) 编辑 收藏 举报