1.创建消息处理事件
varwindow:UIWindow? letNotificationCategoryIdent:NSString="ACTIONABLE" letNotificationActionOneIdent:NSString="ONE" letNotificationActionTwoIdent:NSString="TWO" funcapplication(application:UIApplication,didFinishLaunchingWithOptionslaunchOptions:NSDictionary?)->Bool{ //Overridepointforcustomizationafterapplicationlaunch. self.registerForNotification() returntrue } funcregisterForNotification(){ varleftAction:UIMutableUserNotificationAction=UIMutableUserNotificationAction()//这里需要注意的是你处理消息是在你对应的应用程序前台处理还是后台处理, //Foreground会跳进应的应用程序里面,Background则会在当前消息界面处理即苹果的主当前窗口。
leftAction.activationMode=UIUserNotificationActivationMode.Foreground
leftAction.title="left"
leftAction.identifier=NotificationActionOneIdent
leftAction.destructive=false
leftAction.authenticationRequired=false
varrightAction:UIMutableUserNotificationAction=UIMutableUserNotificationAction()
rightAction.activationMode=UIUserNotificationActivationMode.Foreground
rightAction.title="right"
rightAction.identifier=NotificationActionTwoIdent
rightAction.destructive=false
rightAction.authenticationRequired=false
//这个Category很重要很重要,这个是后面进行消息通信联系起来的
varnotificationCategory:UIMutableUserNotificationCategory=UIMutableUserNotificationCategory()
notificationCategory.identifier=NotificationCategoryIdent
varactionArray:NSArray=[rightAction,leftAction]
notificationCategory.setActions(actionArray,forContext:UIUserNotificationActionContext.Default)
varcategories:NSSet=NSSet(object:notificationCategory)
lettypes:UIUserNotificationType= [.Alert,.Badge,.Sound]
varnotificationSettings:UIUserNotificationSettings=UIUserNotificationSettings(forTypes:types,categories:categories)
UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings)
}
funcapplication(application:UIApplication,handleActionWithIdentifieridentifier:String?,
forLocalNotificationnotification:UILocalNotification,completionHandler:()->Void){
ifidentifier==NotificationActionOneIdent{
NSNotificationCenter.defaultCenter().postNotificationName("ONE",object:nil)
}elseifidentifier==NotificationActionTwoIdent{
NSNotificationCenter.defaultCenter().postNotificationName("TWO",object:nil)
} completionHandler()
}2.要处理的事件
overridefuncviewDidLoad(){ super.viewDidLoad() NSNotificationCenter.defaultCenter().addObserver(self,selector:"TestShape:",name:"ONE",object:nil) NSNotificationCenter.defaultCenter().addObserver(self,selector:"TestMessage:",name:"TWO",object:nil) self.notification() } funcnotification(){notification.fireDate=dateNow notification.hasAction=true notification.category="ACTIONABLE"//如果不把这两个category联系起来,新特性根本无法实现 notification.alertBody="新消息来了!" UIApplication.sharedApplication().scheduleLocalNotification(notification) } funcTestShape(notification:NSNotification){ varview:UIView=UIView(frame:CGRectMake(100,100,100)); view.backgroundColor=UIColor.blueColor() self.view.addSubview(view) } funcTestMessage(notification:NSNotification){ varmessage:UIAlertController=UIAlertController(title:"Hello",message:"推送通知",preferredStyle:UIAlertControllerStyle.Alert) message.addAction(UIAlertAction(title:"OK",style:UIAlertActionStyle.Default,handler:nil)) self.presentViewController(message,animated:true,completion:nil) }vardateNow:NSDate=NSDate(timeIntervalSinceNow:5) varnotification:UILocalNotification=UILocalNotification()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。