iOS 推送通知 客户端实现

来源:互联网 发布:win10电脑优化软件 编辑:程序博客网 时间:2024/05/22 04:59
关于推送,已经有很多文章了,我写一下自己在做推送时候的一些个人理解,对于如何取证书还有服务器实现网上有现成代码,不在累述。如果有说的不对的地方,希望大家指正。
首先:

-(BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions


在这个方法里添加上

 

UIRemoteNotificationType  types= UIRemoteNotificationTypeSound|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert;

   [[UIApplicationsharedApplication]registerForRemoteNotificationTypes:types];

这里表明 一共注册三种类型badge,alert,和sound


会在第一次使用时候提醒用户是否接受推送,(只会提醒一次),当用户选择允许之后会在

 

-(void)application:(UIApplication *)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

这个方法里取得设备的token号,然后发送给你们的服务器(因为token不是永远不变的,建议在程序轮询取一次,存好)




当用户选择不允许的时候或者此时使用模拟器的时候会实现该方法

 

-(void)application:(UIApplication *)applicationdidFailToRegisterForRemoteNotificationsWithError:(NSError *)error



当用户正在使用该程序的时候,可以用一个alertview提醒用户,(主要是为了与自己服务器通信,取得一次最新数据)

 

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

{


    

   //当用户打开程序时候收到远程通知后执行  

    if (application.applicationState == UIApplicationStateActive) { 

 

      UIAlertView*alertView = [[UIAlertViewalloc]initWithTitle:@"新消息提示" 

                                                  message:[NSStringstringWithFormat:@"\n%@",  

                                                          [[userInfo objectForKey:@"aps"]objectForKey:@"alert"]]  

                                                 delegate:self  

                                         cancelButtonTitle:@"确定" 

                                         otherButtonTitles:nil];  

       


       

       [alertViewshow];  

       [alertView release];  

 

      

       

    }  

       

}


在这里与服务器通信

-(void) alertView:(UIAlertView *)alertViewclickedButtonAtIndex:(NSInteger)buttonIndex

{


}



另外:

可以在这个方法里面把icon图标数字变为零,(这个主要根据软件需要)

-(void)applicationDidBecomeActive:(UIApplication*)application

{

   [[UIApplicationsharedApplication]setApplicationIconBadgeNumber:0];

  

}


原创粉丝点击