iOS推送详解(一)基本集成操作

后面举例采用百度推送服务,各类主流第三方推送大同小异只是方法有所不同

一:准备工作

       1)登陆百度推送开发者平台(无账号申请注册),下载相关SDK,在官网上又详细的配置说明以及简单的demo例子,这里就不详细说明

        2)在百度推送平台创建自己的应用,有两个注意事项

              a.注意标识要同自己项目的 bundleId一致;

              b,应用创建成功之后,把相应生成的APP ID(暂无用处)  API KEY(写进appdelegate文件)  SECRET KEY (给服务端后台)

        3)配置相关证书生成pem证书,上传至百度推送自己创建应用的里面有。(具体配置证书详见百度推送官网),p12生成pem文件命令如下

             openssl pkcs12 -in MyApnsCert.p12 -out MyApnsCert.pem -nodes


    // 在 App 启动时注册百度云推送服务,需要提供 Apikey
    
    [BPush registerChannel:launchOptions apiKey:@"这里填写上面的API KEY" pushMode:BPushModeDevelopment withFirstAction:@"打开" withSecondAction:@"回复" withCategory:@"test" useBehaviorTextInput:YES isDebug:YES];

    上面注册之后,程序启动时会自动调用下述方法来获取channelId (作为每个手机的唯一标示,服务端后台发送推送都是给这个id推的)

    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

    在该方法中获取channelId,存在本地,后续使用(由于各种原因这里的channelId不一定能很快的获取到,所以有时直接操作会空值,有一点肯定这个方法是一直到获取到channelId为之的所以不担心会一直获取不到)

    这里说几种我自己遇到的情况

    一种、APP没有登陆选项,或者非必须登陆

         实现方式,在什么时候获取到channelId什么时候向服务端发送这个channelId,服务端保存 以后推送直接往这里推即可

    二种、APP需要登陆

        实现方式,一样在该方法中获取channelId,并保存本地,在登陆方法中把这个channelId一并发给后台,作为后续的发送推送使用,但有时会再登陆时还没有获取到channelId只能传一个空值给后台,处理办法:在获取到这个channelId之后判断当前是否是已经登陆过了,如果未登陆那就什么也不做,等待登陆时穿后台即可,如果已经登陆那么就在重新向后台发送一次channelId,让后台更新保存即可

     至此基本的配置完成,下面可以做些简单的测试能否接到通知

   下一篇文章讲解当接收到推送,在前台、后台做操作

   

猜你喜欢

转载自blog.csdn.net/wangxiaoertedaye/article/details/52846545