推送这个功能小伙伴们肯定是经常遇到,对于有些app的推送频次更是感觉够了。但是作为一枚合格的iOS开发攻城狮,这项重要的必备技能还是必须得掌握。下面就个人的经验说说怎么添加推送(这里用的腾讯信鸽平台)。
一、准备推送证书和描述文件
创建证书和描述文件的方法请参考我的博客《iOS真机调试流程》,但具体有点点不同
创建app id的时候,在第二个页面记得勾选下图中红色框框标明的选项,因为咱们要创建的是推送证书
创建证书的时候,勾选如下图选项
利用终端执行如下命令
“openssl pkcs12 -in 证书.p12 -out 证书.pem -nodes”
把.p12文件改成pem文件
二、编辑工程(和第三步交叉进行)
进入http://xg.qq.com/xg按照下图操作下载SDK,然后把demo里面的sdk文件拖入工程当中,参考技术文档(http://developer.xg.qq.com/index.php/IOS_SDK)。
如下图,把iOS版本改成7.0(如果默认8.3的话,有些方法就不能调用了)
在AppleDelegate.h文件中引入#import "XGPush.h"
#import "XGSetting.h"具体代码如下
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 判断版本
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
// 创建---通知页面配置选项
UIUserNotificationSettings *userSetting = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert) categories:nil];
// 设置---通知页面配置选项
[[UIApplication sharedApplication] registerUserNotificationSettings:userSetting];
// 注册远程通知
[[UIApplication sharedApplication] registerForRemoteNotifications];
}else {
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge];
}
// 启动信鸽服务
// 两个参数分别是ACCESS ID 和 ACCESS KEY
[XGPush startApp:2200122254 appKey:@"ISSZ525PA27N"];
return YES;
}
#pragma mark - 注册失败反馈的消息
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{
NSLog(@"注册远程通知失败");
}
#pragma mark - 注册成功反馈的消息
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
NSLog(@"注册远程通知成功 Token = %@",deviceToken);
[XGPush registerDevice:deviceToken];
NSLog(@"%@",[XGPush registerDevice:deviceToken]);
}
// 当app在后台时,点击通知进入应用程序时执行
// 当app在前台时,直接执行
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
NSLog(@"推送消息:%@",userInfo);
// 角标清零
application.applicationIconBadgeNumber = 0;
}
三、利用腾讯信鸽进行推送信息设置(和第二步交叉进行)
进入腾讯信鸽之后进行如下操作,点击应用列表,再点击应用配置
按照下图分别加载开发证书(pem文件)、
设备(连上设备,注册成功之后打印设备信息,填上)、
四、如下图,点击创建通知