消息推送处理代码样列

http://www.cocoachina.com/bbs/read.php?tid-123567.html


#define push_server @"http://192.168.0.123/push/apns.php"
- ( BOOL )application:(UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions {
 
     /** 注册推送通知功能, */
     [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
     application.applicationIconBadgeNumber = 0;
     //判断程序是不是由推送服务完成的
     if (launchOptions) {
         NSDictionary * pushNotificationKey = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
         if (pushNotificationKey) {
             application.applicationIconBadgeNumber = 0;
         }
     }
 
}
 
/** 接收从苹果服务器返回的唯一的设备token,然后发送给自己的服务端*/
- ( void )application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:( NSData *)deviceToken {
     NSString * devices_token = [ NSString stringWithFormat:@ "%@" ,deviceToken];
     NSString * devices_name = [[UIDevice currentDevice] name];
     NSString * devices_version = [[UIDevice currentDevice] systemVersion];
     NSString * devices_type = [[UIDevice currentDevice] model];
     NSString * mode = @ "Development" ;
     NSString *strUrl = [ NSString stringWithFormat:@ "%@?action=registerDevices&devices_token=%@&devices_name=%@&devices_version=%@&devices_type=%@&mode=%@" ,
                         push_server,devices_token,devices_name,devices_version,devices_type,mode];
     strUrl = [strUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding ];
     NSURL *url = [ NSURL URLWithString:strUrl];
     
     NSURLRequest *request = [[ NSURLRequest alloc] initWithURL:url];
     //发送URL请求
     NSURLConnection *connection = [[ NSURLConnection alloc] initWithRequest:request delegate: self ];
}
 
//程序处于启动状态,或者在后台运行时,会接收到推送消息,解析处理
- ( void )application:(UIApplication *)application didReceiveRemoteNotification:( NSDictionary *)userInfo
{
     NSLog (@ "\napns -> didReceiveRemoteNotification,Receive Data:\n%@" , userInfo);
     //把icon上的标记数字设置为0,
     application.applicationIconBadgeNumber = 0;
     if ([[userInfo objectForKey:@ "aps" ] objectForKey:@ "alert" ]!= NULL ) {
         if (application.applicationState ==UIApplicationStateActive){
             [ self alertNotice:@ "推送通知" withMSG:[[userInfo objectForKey:@ "aps" ] objectForKey:@ "alert" ] cancleButtonTitle:@ "OK" otherButtonTitle: nil ];
         }
         NSString *strUrl = [ NSString stringWithFormat:@ "%@?action=cleanBadgeNumber&id=%@&badge=%d" ,
                             push_server,[[userInfo objectForKey:@ "aps" ] objectForKey:@ "id" ],0];
         strUrl = [strUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding ];
         NSURL *url = [ NSURL URLWithString:strUrl];
         
         NSURLRequest *request = [[ NSURLRequest alloc] initWithURL:url];
         //发送URL请求
         NSURLConnection *connection = [[ NSURLConnection alloc] initWithRequest:request delegate: self ];
     }
}

你可能感兴趣的:(消息推送处理代码样列)