前端之家收集整理的这篇文章主要介绍了
Swift2.0推送,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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) }
原文链接:https://www.f2er.com/swift/325607.html