SWIFT推送之本地推送(UILocalNotification)之二带按钮的消息
2015-07-03 10:58
483 查看
上一篇讲到的本地推送是普通的消息推送,本篇要讲一下带按钮动作的推送消息,先上个图瞅瞅:
继上一篇的内容进行小小的改动:
在didFinishLaunchingWithOptions方法内进行以下修改
2.修改applicationDidEnterBackground方法
3.点击推送消息的按钮时会触发func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forLocalNotification notification: UILocalNotification, completionHandler: () -> Void) {}这个方法。
如果是远程推送那就是func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forRemoteNotification userInfo: [NSObject : AnyObject], completionHandler: () -> Void) {}这个方法。
这里只需要调用本地第一个方法即可
继上一篇的内容进行小小的改动:
在didFinishLaunchingWithOptions方法内进行以下修改
if (UIDevice.currentDevice().systemVersion as NSString).floatValue >= 8 { // APService.registerForRemoteNotificationTypes( // UIUserNotificationType.Badge.rawValue | // UIUserNotificationType.Sound.rawValue | // UIUserNotificationType.Alert.rawValue, // categories: setting.categories) //1.创建一组动作 var userAction = UIMutableUserNotificationAction() userAction.identifier = "action" userAction.title = "Accept" userAction.activationMode = UIUserNotificationActivationMode.Foreground var userAction2 = UIMutableUserNotificationAction() userAction2.identifier = "action2" userAction2.title = "Ingore" userAction2.activationMode = UIUserNotificationActivationMode.Background userAction2.authenticationRequired = true userAction2.destructive = true //2.创建动作的类别集合 var userCategory = UIMutableUserNotificationCategory() userCategory.identifier = "MyNotification" userCategory.setActions([userAction,userAction2], forContext: UIUserNotificationActionContext.Minimal) var categories:NSSet = NSSet(object: userCategory) //3.创建UIUserNotificationSettings,并设置消息的显示类类型 var userSetting = UIUserNotificationSettings(forTypes: UIUserNotificationType.Badge | UIUserNotificationType.Sound | UIUserNotificationType.Alert , categories: categories as Set<NSObject>) //4.注册推送 application.registerForRemoteNotifications() application.registerUserNotificationSettings(userSetting) }
2.修改applicationDidEnterBackground方法
func applicationDidEnterBackground(application: UIApplication) { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. UIApplication.sharedApplication().cancelAllLocalNotifications() var notification = UILocalNotification() //notification.fireDate = NSDate().dateByAddingTimeInterval(1) //setting timeZone as localTimeZone notification.timeZone = NSTimeZone.localTimeZone() notification.repeatInterval = NSCalendarUnit.CalendarUnitDay notification.alertTitle = "This is a local notification" notification.alertBody = "Hey,It's great to see you again" notification.alertAction = "OK" notification.category = "MyNotification" //这个很重要,跟上面的动作集合(UIMutableUserNotificationCategory)的identifier一样 notification.soundName = UILocalNotificationDefaultSoundName //setting app's icon badge notification.applicationIconBadgeNumber = 1 var userInfo:[NSObject : AnyObject] = [NSObject : AnyObject]() userInfo["kLocalNotificationID"] = "LocalNotificationID" userInfo["key"] = "Attention Please" notification.userInfo = userInfo //UIApplication.sharedApplication().scheduleLocalNotification(notification) //UIApplication.sharedApplication().presentLocalNotificationNow(notification) application.presentLocalNotificationNow(notification) }
3.点击推送消息的按钮时会触发func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forLocalNotification notification: UILocalNotification, completionHandler: () -> Void) {}这个方法。
如果是远程推送那就是func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forRemoteNotification userInfo: [NSObject : AnyObject], completionHandler: () -> Void) {}这个方法。
这里只需要调用本地第一个方法即可
func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forLocalNotification notification: UILocalNotification, completionHandler: () -> Void) { println("identifier=\(identifier)") //这里的identifier是按钮的identifier completionHandler() //最后一定要调用这上方法 }
相关文章推荐
- Swift下调用Touch ID实现指纹识别
- Swift初体验(两)
- swift 之 模仿block 界面传值
- Swift 字典
- Swift基础学习(1)
- IOS Swift 学习之字符串与字符
- 苹果公司的新的编程语言 Swift 高级语言(十五)--协议
- Swift基本语法
- [教程技巧] 行走于Swift的世界中
- [教程技巧] 程序员眼中的苹果Swift语言
- [教程技巧] 关于Swift,开发者最需要了解的7个方面
- [教程技巧] Swift中下划线和"#"的妙用
- SWIFT推送之本地推送(UILocalNotification)
- 【swift-总结】结构体和类
- Swift 数组
- 【swift-总结】枚举
- OC代码转Swift代码
- swift语法初探 -- 1
- 【swift-总结】闭包
- OC移植 swfit——Unknown type name 'NSData'