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(){
vardateNow:NSDate=NSDate(timeIntervalSinceNow:5)
varnotification:UILocalNotification=UILocalNotification()
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) } (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|