消息推送处理代码样列

来源:互联网 发布:netstat命令查看端口 编辑:程序博客网 时间:2024/05/16 14:38

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 = [NSStringstringWithFormat:@"%@",deviceToken];
    NSString* devices_name = [[UIDevice currentDevice] name];
    NSString* devices_version = [[UIDevice currentDevice] systemVersion];
    NSString* devices_type = [[UIDevice currentDevice] model];
    NSString* mode = @"Development";
    NSString*strUrl = [NSStringstringWithFormat:@"%@?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 = [NSURLURLWithString:strUrl];
     
    NSURLRequest*request = [[NSURLRequestalloc] initWithURL:url];
    //发送URL请求
    NSURLConnection*connection = [[NSURLConnectionalloc] 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){
            [selfalertNotice:@"推送通知"withMSG:[[userInfo objectForKey:@"aps"] objectForKey:@"alert"] cancleButtonTitle:@"OK"otherButtonTitle:nil];
        }
        NSString*strUrl = [NSStringstringWithFormat:@"%@?action=cleanBadgeNumber&id=%@&badge=%d",
                            push_server,[[userInfo objectForKey:@"aps"] objectForKey:@"id"],0];
        strUrl = [strUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        NSURL*url = [NSURLURLWithString:strUrl];
         
        NSURLRequest*request = [[NSURLRequestalloc] initWithURL:url];
        //发送URL请求
        NSURLConnection*connection = [[NSURLConnectionalloc] initWithRequest:request delegate:self];
    }
}

0 0
原创粉丝点击