网络推送的简略使用
/**
* 网络推送
应用场景
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{
//接受
}