iOS推送浅谈

      推送这个功能小伙伴们肯定是经常遇到,对于有些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文件)、

设备(连上设备,注册成功之后打印设备信息,填上)、

四、如下图,点击创建通知

你可能感兴趣的:(ios)