信鸽推送集成

信鸽推送集成

  • UDID是设备唯一设备识别符,移动广告运营商和游戏网络运营商可以通过这个udid识别玩家用户并对用户活动进行跟踪,苹果可能是因为安全原因拒绝。

  • device token是苹果返回给我们的NSData数据。通过Bundle Identifier 区分 deviceToken

iOS远端推送原理

  1. 服务端把要发送的消息和目标iOS设备的DeviceToken打包,发送给APNS;DeviceToken不是一成不变的
  2. APNS在自身的已注册Push服务的IOS设备列表中,根据DeviceToken查找对应iOS设备,并将消息发送到IOS设备
  3. iOS设备把发送的消息传递给对应的应用程序。

iOS推送证书设置

  1. 再需要设置信鸽推送的Demo上,先用开发者账号去运行,将Demo在模拟机上运行一遍。这样可以在apple developer -> acconut 中直接查找到项目的App ID.


    信鸽推送集成_第1张图片
  2. 运行过后刷新apple developer -> account -> Certificates...


    信鸽推送集成_第2张图片
  3. 找到后,由于未添加push notification 所以选项都为disable 点击edit进行更改。


    信鸽推送集成_第3张图片
  4. 创建推送证书,接下来会需要导入Certificate Signing Request。


    信鸽推送集成_第4张图片
  5. 生成 .certSigningRequest文件,然后导入到 4 中。


    信鸽推送集成_第5张图片
  6. 5 中上传完成的后的效果图。


    信鸽推送集成_第6张图片
  7. 推送证书生成完毕,点击下载。


    信鸽推送集成_第7张图片
  8. 下载后如图所示,双击进行安装


    信鸽推送集成_第8张图片
  9. 推送证书安装完毕后的效果。


    信鸽推送集成_第9张图片

Provisioning Profiles (配置概要文件)

  1. 如图所示,添加新profile


    信鸽推送集成_第10张图片
  2. 选中ios App Developer

    Development(开发状态下) Distribution(生产状态下)


    信鸽推送集成_第11张图片
  3. 选择需要进行推送的应用的Bundle id


    信鸽推送集成_第12张图片
  4. 按照图示进行选中。


    信鸽推送集成_第13张图片
  5. 选中需要推送的设备


    信鸽推送集成_第14张图片
  6. 给描述文件命名。


    信鸽推送集成_第15张图片
  7. 下载用于推送的描述文件。


    信鸽推送集成_第16张图片

腾讯信鸽平台设置

  1. 登录信鸽平台。选中接入推送应用


    信鸽推送集成_第17张图片
  2. 填写需要设置推送的应用的信息


    信鸽推送集成_第18张图片
  3. 进行该应用的信鸽平台的配置


  4. 需要进行设置的2项:开发证书和测试设备


    信鸽推送集成_第19张图片
  5. 再次打开钥匙串。选中Push证书导出,选中一行。导出的格式为p12。

    信鸽推送集成_第20张图片
  6. 打开终端,进入到p12文件所在执行以下命令

    openssl pkcs12 -in Name.p12 -out Name.pem -nodes
    
  7. 将生成的CertificateName.pem证书,上传到信鸽配置信息 -> iOS证书配置 -> 开发证书。 进行 pem 证书上传验证。

    信鸽推送集成_第21张图片

Xcode设置

  1. 双击 .mobileprovision 文件,进行安装。

  2. 设置Provisioning Profile

    信鸽推送集成_第22张图片

代码实现

  1. 在信鸽平台下载Demo后,将XGSetting.h 和 XGPush.h 和 libXG-SDK.a添加到Xcode工程

  2. 添加对以下libraries的引用。包括CFNetwork.framework , SystemConfiguration.framework , CoreTelephony.framework , libz.dylib , libXG-SDK.a,Security.framework。

  3. 初始化push信息

    注册用户

    // 设置账号
    [XGPush setAccount:@"zhoujian"];
    
  4. 获取deviceToken,拷贝至信鸽平台 接入配置 -> 测试设备 -> 新增设备

    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
        [XGPush registerDevice:deviceToken];//信鸽获取Token
        NSLog(@"远程推送能力注册成功,deviceToken:%@",deviceToken);
    }
    
  5. 信鸽平台 -> 创建通知

    • 注意:推送环境和用户范围设置好,注意是当前应用设置的是开发环境还是生产环境。
  6. 输入测试内容,点击确认推送,手机端就可以收到推送的信息。

设置点击推送栏跳转至指定页面

  1. 点击通知操作使用自定义参数

  2. 收到远程推送消息时调用

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
    //推送
   NSLog(@"推送内容是:%@",userInfo);
}

得到userInfo字典

    推送内容是:{
    aps =     {
        alert = "\U6d4b\U8bd5";
        sound = default;
    };
    info = 333;
    xg =     {
        bid = 0;
        ts = 1472197503;
    };
}

故可以设置通知,当 info 有值时候,发送通知给指定页面,执行相应的跳转事件。

设置APP 通知未读角标

  1. 信鸽平台 -> 创建通知

    信鸽推送集成_第23张图片
  2. 在 useInfo 中

    //设置APP的bageValue
    NSString *bageValue = [[userInfo objectForKey:@"aps"] objectForKey:@"bageValue"];
    
    int i = [bageValue intValue];
    
    [UIApplication sharedApplication].applicationIconBadgeNumber = i;
    

判断应用处于前台 or 后台

//处于前台
[UIApplication sharedApplication].applicationState == UIApplicationStateActive

//处于后台
[UIApplication sharedApplication].applicationState == UIApplicationStateBackground

你可能感兴趣的:(信鸽推送集成)