个推使用总结

在ios客户端集成个推并不难,按照官方文档和demo,还有几个很重要的时序图跑几遍就大概知道怎么写代码了。

这里用根据自己的理解重述一下个推的代码流程:

1、创建个推skd对象,skd会将clientid发送到个推服务器,并异步返回clientid。个推服务器利用clientid来唯一标识每一个设备,收到clientid之后,你可以将clientid和用户信息等上传到app服务器上。

2、向苹果服务器注册apns,收到devicetoken后,调用个推skd方法将devicetoken和clientid绑定。

3、此时app服务器可以利用clientid向设备推送信息:(1)如果app在前台时,信息会从app服务器传送到个推服务器,由个推服务器通过clientid找到对应的设备。(2)如果app切换到后台时,此时个推sdk被关闭,推送消息通过apns,由devicetoken来找到对应的设备。

个推文档中建议将个推sdk的调用放到主线程中,以保证线程安全。

接下来重点记录一下个推坑我的地方:

1、个推发布环境下和开发环境下要上传不同的证书,用发布证书安装的app无法收到开发环境证书的推送消息。

2、替换开发证书和发布证书需要24小时后才能推送成功,原因:当新的证书生效后,就会有新的devicetoken,但是坑爹的个推居然要间隔24小时,才会将clientid和devicetoken重新绑定,所以这个时候clientid根本映射不到正确的devicetoken,所以后台推送无法成功。解决办法:可以同一个app注册两个个推,上传不同的证书、使用不同的appkey,这样就不需要24小时的等待了。

3、透传消息:据说就是自定义消息,区分普通的通知。

时间: 2024-10-11 01:04:15

个推使用总结的相关文章

hdu 1207 汉诺塔II (DP+递推)

汉诺塔II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4529    Accepted Submission(s): 2231 Problem Description 经典的汉诺塔问题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往

hdu 1267 递推

下沙的沙子有几粒? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4326    Accepted Submission(s): 2268 Problem Description 2005年11月份,我们学校参加了ACM/ICPC 亚洲赛区成都站的比赛,在这里,我们获得了历史性的突破,尽管只是一枚铜牌,但获奖那一刻的激动,也许将永远铭刻

git使用(1)----推送代码到远程

git使用(1) 首先要明白git上有三个区域 1.工作区 2.暂存区 3.历史记录区 步骤: 1.git  init 2.配置环境(如果配置一次了以后就不用再继续配置) git  config  --global  user.name  "username" git  config  --global  user.email  "email" 3.在本地版本库设置远程版本库的别名: git  remote  add  版本库别名  <库地址> 比如:g

xcode 版本控制推送代码到远程git仓库的步骤

一 代码推送到远程git仓库 1.在git中建立一个下项目(假设项目名称为->Mygit) 2.在xocde上新建一个测试项目(假设项目名称为GitTest) 3.打开电脑终端: 1)首先利用终端命令进入xcode新建的测试项目(GitTest)的目录中 2) echo "# Mygit" >>README.md  回车 3) git init 回车 4) git add READEM.md 回车 5) git commit -m "commit init&

ffmpeg+x264推送high422 10bit码流

一.目的 推送一条rtmp流,视频码流采用h264 high422 10bit编码 二.环境 1.linux系统:Red Hat Enterprise Linux Server release 5.8 2.ffmpeg:3.1.4 3.x264:git下来的最新代码(2016-10-21) 三.编译x264+ffmpeg 1.编译x264 ./configure --enable_static --bit-depth=10 make make install 默认安装库和头文件到/usr/loc

物联网核心协议—消息推送技术演进

消息触达能力是物联网(internet ofthings, IOT)的重要支撑,而物联网很多技术都源于移动互联网.本文阐述移动互联网消息推送技术在物联网中的应用和演进. 一.物联网架构和关键技术 从开发的角度,无线接入是物联网设备端的核心技术,身份设备管理和消息推送技术是物联网云端的核心技术.而从场景体验的角度,除了前者,还要包括手机的前端开发技术. 在上一篇<一张图读懂基于微信硬件平台的物联网架构>博文中,笔者曾用一张大图详细描述了基于微信硬件平台的物联网架构的组成要素.关键场景.和通信协议

Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送

Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送,写这个系列真的很要命,你要去把他们的API文档大致的翻阅一遍,而且各种功能都实现一遍,解决各种bug各种坑,不得不说,极光推送真坑,大家使用还是要慎重,我们看一下极光推送的官网 https://www.jpush.cn/common/ 推送比较使用,很多软件有需要,所以在这个点拿出来多讲讲,我们本节

iOS: 环信的推送

原文:http://m.blog.csdn.net/article/details?id=38824551 1.先创建一个apns证书,链接如下 http://developer.easemob.com/docs/emchat/ios/push/certificate.html 创建完证书后,将证书弄成p12文件,然后上传到环信后台 2.再创建真机调试证书,和描述文件,保证能进行真机调试.并且appid要又推送功能 3.绑定环信证书和appkey //注册 APNS文件的名字, 需要与后台上传证

hdu 2067(递推或卡特兰数【待补充】)

//解法一:递推#include<iostream> using namespace std; long long d[36][36]; int main() { for(int i=1;i<=35;i++) { d[0][i]=1; } for(int i=1;i<=35;i++) for(int j=i;j<=35;j++) { if(i==j) d[i][j]=d[i-1][j]; else d[i][j]=d[i-1][j]+d[i][j-1]; } int n; i

iOS关于UITabView和UIAlertController,UIAlertAction以及UINavigation,值修改的传递页面推送

关于UITabView和UIAlertController,UIAlertAction以及UINavigation,值修改的传递 集合嵌套集合的操作 声明 两个必须的的代理 实现部分代码 - (void)viewDidLoad { [super viewDidLoad]; // 创建一个TabView self.tabv = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped]; sel