iOS学习笔记5-推送(信鸽推送)
今天博主有一个集成信鸽推送的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.
推送分为用户推送,本地推送,远程推送和地理位置推送,其中最常用的就是远程推送,远程推送可以直接编写代码实现功能,也可以使用第三方的SDK,常用的第三方SDK有信鸽推送,极光推送和个推.今天和大家分享一下集成信鸽推送的过程.
1.下载腾讯信鸽SDK
它下面有两个版本:基础版和Pro版
下载地址:http://xg.qq.com/xg/ctr_index/download
注:信鸽ProiOS SDK是信鸽iOSSDK的加强版,整合了数据分析能力,没有数据分析需求使用基础版即可,博主使用的就是基础版
2.创建应用,申请appID
3.进行应用配置(点击“应用配置”)
4.验证开发证书和生产证书
配置iOS证书的具体流程请参考:http://developer.xg.qq.com/index.php/IOS_证书设置指南
注:开发证书和生产证书均为pem类型的文件,证书密码为生成pem类型文件过程中所设置的密码
5.点击“测试设备”,增加测试设备,以便后期开发中进行测试调试
其中设备Token的获取方式:在获取deviceToken的方法中,注册设备,打印Token
6.添加以下引用库
CFNetwork.framework
SystemConfiguration.framework
CoreTelephony.framework
Security.framework
libz.dylib
libsqlite.dylib
libXG-SDK.a
7.具体代码可以直接复制信鸽推送的官方demo,注释相当详细.
这里重点和大家分享一下处理推送回调的问题:
②.当程序处于前台工作时,这时候若收到消息推送,会调用- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo这个方法
③.当程序处于后台运行时,这时候若收到消息推送,如果点击消息或者点击消息图标时,也会调用- (void)application:(UIApplication*)application
didReceiveRemoteNotification:(NSDictionary *)userInfo这个方法
④.当程序处于后台运行时,这时候若收到消息推送,如果点击桌面应用图标,则不会调用didFinishLaunchingWithOptions和didReceiveRemoteNotification方法,所以无法获取消息
第一种情况:
if (launchOptions) {
NSDictionary* pushNotificationKey = [launchOptionsobjectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (pushNotificationKey) {
//这里定义自己的处理方式
}
}
第二、三种情况:
if (application.applicationState == UIApplicationStateActive) {
//第二种情况
if ([[userInfo objectForKey:@"aps"] objectForKey:@"alert"]!=NULL) {
[WLHelper showAlert:@"推送消息" msg:[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]];
}
} else {
//第三种情况
//这里定义自己的处理方式
}
第四种情况:目前还没想好,望各位看官集思广益,不胜感激