首先讲一下远程推送的流程
注意:Token是服务器端存在的设备的唯一标识, 它是可变的, 但是UDID是手机的唯一标识符.
1.登陆http://xg.qq.com/xg/help/ctr_help/download
下载SDK
2.将SDK拖入工程, 在APPDelegate引头文件.
3.做好编码编码前的准备工作
将p12文件转换成pem, 详见http://developer.xg.qq.com/index.php/IOS_%E8%AF%81%E4%B9%A6%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97
4.实现如下代码:
/**
* 1.注册通知
*/
//判断当前版本方法
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0f) {
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
else{
//8.0之前的注册方法
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];
}
//初始化信鸽
[XGPush startApp:2200147196 appKey:@"I27432GZYVCQ"];
//设置角标为零
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
4.实现代理方法
/**
* 远程推送
*/
//2.注册成功获取Token
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
//3.从APP传给服务器设备的token
[XGPush registerDevice:deviceToken];
NSLog(@"token =========%@", [XGPush getDeviceToken:deviceToken]);
}
//注册失败返回错误信息
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
}
//5.发送推送通知收到的信息内容
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSLog(@"userInfo =========== %@", userInfo);
//设置角标为零
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
}