本地通知的使用

来源:互联网 发布:2015年总决赛库里数据 编辑:程序博客网 时间:2024/04/29 20:36

本地推送不需要联网的就能发出的推送通知(不需要服务器的支持),当然也可以接受服务器的推送,但是必须是程序在前台运行的时候才能接收到消息.
本地推送通知的使用场景:
常用来定时提醒用户完成一些任务,比如:定时通知用户清理垃圾,记账,购物,买衣服,看电影,该学习了。


IOS的本地通知服务需要使用NSLocalNotification,处理基于时间行为的通知。
使用NSLocalNotification一般需要考虑以下方面:

firedata  :通知触发的时间

alertBody:消息内容

scheduled time:时间周期,用来指定iOS系统发送通知的日期和时间;
notification type:通知类型(包括警告信息,动作按钮的标题,应用图标上的badge(数字标记)和播放的声音);
自定义数据,本地通知可以包含一个dictionary类型的本地数据。
对本地通知的数量限制,iOS最多允许最近本地通知数量是64个,超过限制的本地通知将被iOS忽略。
要让操作系统在稍后发送一条本地通知,应用程序需要创建UILocalNotification对象,设置它的发送日期/时间,指定呈现的细节,然后把它放到任务列表中。。
在操作系统发送本地通知时,目标程序并没有在前台运行,它通过告警窗口,徽标上的数字,声音的方式进行提示。如果在告警窗口中用户点击了action按钮(或者拖动了action的滑动条),该程序将启动并调用 UIApplicationDelegate 的 application:didFinishLaunchingWithOptions:方法,并在方法参数中传递一个本地通知对象。 如果通知发送时程序正在前台运行, 则会调用application:didReceiveLocalNotification: 方法。


UILocalNotification的调度

其中fireDate、timeZone、repeatInterval和repeatCalendar是用于UILocalNotification的调度。fireDate是UILocalNotification的激发的确切时间。timeZone是UILocalNotification激发时间是否根据时区改变而改变,如果设置为nil的话,那么UILocalNotification将在一段时候后被激发,而不是某一个确切时间被激发。 repeatInterval是UILocalNotification被重复激发之间的时间差,不过时间差是完全根据日历单位(NSCalendarUnit)的,例如每周激发的单位,NSWeekCalendarUnit,如果不设置的话,将不会重复激发。 repeatCalendar是UILocalNotification重复激发所使用的日历单位需要参考的日历,如果不设置的话,系统默认的日历将被作为参考日历。

UILocalNotification的提醒内容

alertBody、alertAction、hasAction和alertLaunchImage是当应用不在运行时,系统处理




0 0
原创粉丝点击