网络推送的简略使用

网络推送的简单使用
/**
     *  网络推送
        应用场景
       1、每天晚上8点影视剧推送
       2、小说更新推送
       3、游戏活动推送
       4、新闻推送
       5、健康推送
       
     奇葩用法:
      1、聊天
      2、查询某人的行为
      3、提醒业务,比如一些秀场,女主播可以发送通知给支持她们的土豪
    
     */
    
    //启用推送通知,比较简单,ios8之前一句话搞定
    

    //判断版本
    if ([[[UIDevice currentDevice]systemVersion] floatValue]>=8.0) {
        [[UIApplication sharedApplication]registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
        
        //开启通知
        [[UIApplication sharedApplication]registerForRemoteNotifications];
    }else{
        [[UIApplication sharedApplication]registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound];

    }



//当我们接到通知之后,如何去处理,首先去处理一个标识
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
    //我们首先获取一个token,相当于我们用的qq,需要一个号,那么这个qq是谁,是苹果服务器,我们通过自己的设备向苹果服务器发起一个请求,告诉他我们的应用需要标识,作为他们之间的联系。
    
    
    //获取token需要进行处理,把这个标识发给我们的服务器做记录,当我们的服务器需要给用户发消息的时候,使用这个标识+我们要发送的消息给苹果APNS服务器,苹果会根据标识转发到相应的手机里面
    
    //那么为什么能接受到消息,因为在有网的情况下,手机是一直和苹果服务器保持通讯的,从理论上来说,苹果可以控制任何一台手机的相关操作
    
    //最明显的就是,在你手机关闭网络的情况下,你收不到任何消息,但是在有网的时候,会一下弹出很多消息

    
    NSLog(@"%@",deviceToken);
    
    //把收到的token发送到服务器上去,这就需要服务器开辟相关的接口
}

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{
    NSLog(@"%@",error);
    
    //模拟器不支持远程通知
    //在我们没有配置证书
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
    //接受
}