远程推送
1.远程推送是当app退出前台时,向app发送消息。
2.推送具体过程。
当app第一次启动时,app会通过苹果的长连接向苹果服务器发送消息。apns会向app返回一个deviceToken(由app的bundleId和手机的UUID经过加密生成)。让后app会把deviceToken上传到服务器。当公司服务器要推送消息时,先把消息和deviceToken(需要推送的设备)推送到苹果apns,再由苹果apns推送到客户端即app。
证书配置
1.进入开发者中心选择证书配置。
测试证书
选择点击下一步
选择你的app的appid,一直点下一步
选择CSR文件(具体导出过程不介绍)
配置完成点击下载双击导入钥匙串。
同样的方法配置发布状态的推送证书。
注册推送通知
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//推送的类型
UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert ;
UIUserNotificationSettings * setting = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:setting];
//ios 8之后需要添加这句
[[UIApplication sharedApplication] registerForRemoteNotifications];
return YES;
}
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
//返回的devicetoken
NSLog(@"deviceToken == %@",deviceToken);
}
将返回的deviceToken发送给服务器。注册完成。
测试远程推送
我用的测试工具是SmartPush-masterhttps://github.com/shaojiankui/SmartPush。注意选择测试环境。