本地推送UILocalNotification
2016-02-22 11:58
429 查看
本地推送,顾名思义,就是不需要网络连接,在客户端本地发送推送通知给用户。
主要分为两个步骤:1、本地推送的创建和发送;2、本地推送的移除。
1、创建和发送
如果不做移除,本地推送会根据初始化的设定,定时循环发送。个人理解,如果需求不是定时推送而是实时的话,移除的时机应当是当收到本地推送后立马移除。需要在 Appdelegate 中,添加系统代理方法 - (void)application:(UIApplication *)application
didReceiveLocalNotification:(UILocalNotification *)notification
主要分为两个步骤:1、本地推送的创建和发送;2、本地推送的移除。
1、创建和发送
- (void)sendLocalNotification { UILocalNotification *localNotification = [[UILocalNotification alloc]init]; //触发通知时间 localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:1]; //1s后触发通知 //时区 localNotification.timeZone = [NSTimeZone defaultTimeZone]; //触发通知后弹出警告框中显示的内容 localNotification.alertBody = @"通知消息的主体"; //触发通知时的声音(这里使用系统的声音) localNotification.soundName = UILocalNotificationDefaultSoundName; //设置通知的用户信息(可以用于移除通知,也可以传其他的值到获取通知的方法中) localNotification.userInfo = @{ @"key" :@"value", }; localNotification.repeatInterval = NSCalendarUnitSecond; //执行通知计划 [[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; }2、移除
如果不做移除,本地推送会根据初始化的设定,定时循环发送。个人理解,如果需求不是定时推送而是实时的话,移除的时机应当是当收到本地推送后立马移除。需要在 Appdelegate 中,添加系统代理方法 - (void)application:(UIApplication *)application
didReceiveLocalNotification:(UILocalNotification *)notification
- (void)application:(UIApplication *)application didReceiveLocalNotification:(nonnull UILocalNotification *)notification { [application cancelLocalNotification:notification]; //operation after receive local notification }
相关文章推荐
- UITableViewCell高度自适应
- Java基础之continue, break, return
- 18.UIImage选择正确的加载方式
- 方法的可变长参数 传入参数个数不确定可用(Type ... values)
- htmlparser解决PKIX path building failed问题的两种方法
- UItableView的使用(1)
- KVM查看虚拟机的分区内容(4)
- Arduino: L293D for a DC motor
- java基础-StringBuild、StringBuffer及List、Map、Set
- [综合]visio2013安装提示找不到Office.zh_cn\officeMUI.mis officemui.xml
- KVM克隆虚拟机和libguestfs-tools管理工具(3)
- iOS开发中 UITabBarController--标签控制器的使用
- UILabel,文字添加下划线,中划线
- UIResponder
- leetcode 334. Increasing Triplet Subsequence
- request接收表单提交中文参数乱码问题
- mui几种页面跳转方式对比
- UIView与CALayer的区别,很详细
- java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date
- UUID already exists