swift开发笔记25 定时的本地通知
2016-03-29 14:03
393 查看
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { //1.创建UIUserNotificationSettings,并设置消息的显示类类型 let pushtypes : UIUserNotificationType = [UIUserNotificationType.Badge,UIUserNotificationType.Alert,UIUserNotificationType.Sound] let userSetting = UIUserNotificationSettings(forTypes: pushtypes , categories:nil) //2.注册推送 //本地通知只有app位于后台才会显示 application.registerUserNotificationSettings(userSetting) //远程通知 //application.registerForRemoteNotificationTypes([UIRemoteNotificationType.Alert,UIRemoteNotificationType.Badge,UIRemoteNotificationType.Sound]) //3.添加本地推送和设置固定时间推送了 self.sendNotification() }
//添加本地推送和设置固定时间推送了 func sendNotification( ) { // //取消所有的本地通知 UIApplication.sharedApplication().cancelAllLocalNotifications() //数字清零 UIApplication.sharedApplication().applicationIconBadgeNumber = 0 let localNotificationAM = UILocalNotification() //设置为5妙后localNotificationAM.fireDate = NSDate(timeIntervalSinceNow: 5) //早九点提醒上班打卡 localNotificationAM.fireDate = getFireDate(9.0) localNotificationAM.repeatInterval = NSCalendarUnit.Day localNotificationAM.timeZone = NSTimeZone.defaultTimeZone() localNotificationAM.alertBody = "别忘上班打卡啊" localNotificationAM.applicationIconBadgeNumber = 1 localNotificationAM.soundName = UILocalNotificationDefaultSoundName UIApplication.sharedApplication().scheduleLocalNotification(localNotificationAM) let localNotificationPM = UILocalNotification() //下午6点提醒打卡 localNotificationPM.fireDate = getFireDate(18.5) localNotificationAM.repeatInterval = NSCalendarUnit.Day localNotificationPM.timeZone = NSTimeZone.defaultTimeZone() localNotificationPM.alertBody = "别忘下班打卡和写日志啊" localNotificationPM.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1 localNotificationPM.soundName = UILocalNotificationDefaultSoundName UIApplication.sharedApplication().scheduleLocalNotification(localNotificationPM) print("@@@@@@@@@@@@@@@@@@注册上午和下午的本地通知 每天重复") } //24小时制 func getFireDate( hourOfDay:Float)->NSDate{ //本地推送时间 hourOfDay let pushTime: Float = hourOfDay*60*60 let date = NSDate() let dateFormatter = NSDateFormatter() //日期格式为“时,分,秒” dateFormatter.dateFormat = "HH,mm,ss" //设备当前的时间(24小时制) let strDate = dateFormatter.stringFromDate(date) //将时、分、秒分割出来,放到一个数组 let dateArr = strDate.componentsSeparatedByString(",") //统一转化成秒为单位 let hour = ((dateArr[0] as NSString).floatValue)*60*60 let minute = ((dateArr[1] as NSString).floatValue)*60 let second = (dateArr[2] as NSString).floatValue var newPushTime = Float() if hour > pushTime { newPushTime = 24*60*60-(hour+minute+second)+pushTime } else { newPushTime = pushTime-(hour+minute+second) } return NSDate(timeIntervalSinceNow: NSTimeInterval(newPushTime)) }
//点击通知打开app func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) { print("didReceiveLocalNotification 接收到本地通知") }
相关文章推荐
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- Java的wait(), notify()和notifyAll()使用心得
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- 简单分析Swift语言的一些基本特征
- Swift与C语言指针结合使用实例
- Swift心得笔记之控制流
- 基于Java多线程notify与notifyall的区别分析
- 详细分析java线程wait和notify
- 用Swift构建一个简单的iOS邮件应用的方法
- 苹果公司推出的新编程语言Swift简介和入门教程
- 探讨Swift数组和字典
- Swift中的指针操作和使用详细介绍
- Swift中使用正则表达式的一些方法
- Swift心得笔记之运算符
- Swift中使用可选类型完美解决占位问题
- Swift学习笔记之构造器重载