信鸽推送集成

作者: 小北风sky | 来源:发表于2016-09-16 21:01 被阅读1689次

    信鸽推送集成

    • 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.


    2. 运行过后刷新apple developer -> account -> Certificates...


    3. 找到后,由于未添加push notification 所以选项都为disable 点击edit进行更改。


    4. 创建推送证书,接下来会需要导入Certificate Signing Request。


    5. 生成 .certSigningRequest文件,然后导入到 4 中。


    6. 5 中上传完成的后的效果图。


    7. 推送证书生成完毕,点击下载。


    8. 下载后如图所示,双击进行安装


    9. 推送证书安装完毕后的效果。


    Provisioning Profiles (配置概要文件)

    1. 如图所示,添加新profile


    2. 选中ios App Developer

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


    3. 选择需要进行推送的应用的Bundle id


    4. 按照图示进行选中。


    5. 选中需要推送的设备


    6. 给描述文件命名。


    7. 下载用于推送的描述文件。


    腾讯信鸽平台设置

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


    2. 填写需要设置推送的应用的信息


    3. 进行该应用的信鸽平台的配置


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


    5. 再次打开钥匙串。选中Push证书导出,选中一行。导出的格式为p12。

    6. 打开终端,进入到p12文件所在执行以下命令

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

    Xcode设置

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

    2. 设置Provisioning Profile

    代码实现

    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. 信鸽平台 -> 创建通知

    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
    

    相关文章

      网友评论

      • 心语风尚:没有角标 杀掉app 收消息
      • 心语风尚:信鸽 如果客户端没有启动 杀掉的 这个时候收到信息 怎么设置角标
        小北风sky:@心语风尚 嗯,👌
        心语风尚:后来发现这个原因了 管理后台 设置可以了 谢谢
        小北风sky:"badge":6-------后台设置这个字段没?
      • 抱走_萝莉:我的xcode7.3 集成 老是报错呢
        小北风sky:@抱走_萝莉 错误是什么?对应错误信息去网上查一下。
      • 邵琼:楼主,信鸽稳定吗?他与极光哪个更好
        小北风sky:@邵琼 我的项目现在用的是友盟。推荐友盟吧。

      本文标题:信鸽推送集成

      本文链接:https://www.haomeiwen.com/subject/cqyiettx.html