加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift2.0推送

发布时间:2020-12-14 01:42:22 所属栏目:百科 来源:网络整理
导读:1.创建消息处理事件 varwindow:UIWindow? letNotificationCategoryIdent:NSString="ACTIONABLE" letNotificationActionOneIdent:NSString="ONE" letNotificationActionTwoIdent:NSString="TWO" funcapplication(application:UIApplication,didFinishLaunchin

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) }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读