您的位置:首页 > 移动开发 > IOS开发

iOS学习笔记5-推送(信鸽推送)

2016-05-11 14:11 411 查看
标签:

今天博主有一个集成信鸽推送的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.

推送分为用户推送,本地推送,远程推送和地理位置推送,其中最常用的就是远程推送,远程推送可以直接编写代码实现功能,也可以使用第三方的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,注释相当详细.

这里重点和大家分享一下处理推送回调的问题:
①.当程序处于关闭状态收到推送消息时,点击图标会调用- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 这个方法,那么消息给通过launchOptions这个参数获取到。

②.当程序处于前台工作时,这时候若收到消息推送,会调用- (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 {
//第三种情况
//这里定义自己的处理方式
}
第四种情况:目前还没想好,望各位看官集思广益,不胜感激
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: