一、 基础概念
1.1 首先理解什么是消息推送?
比如:你手机收到未读消息后会在通知栏显示,该条消息便是某APP的消息推送。多用于有需要从服务端主动发出消息提醒到客户端的场景。
1.2 uniPush & 个推 & 厂商推送的区别
方式 个推 uniPush(推荐2.0) 厂商推送
简介 个推提供移动端消息推送服务 uniapp集成了个推的各个功能,更好地与uniapp结合 各个厂商上也有自己的推送(五大厂商)~华为、小米、OPPO、VIVO、魅族
特点 需要收费 相当于收费版的个推免费给开发uniapp的人使用 免费,但有的厂商有使用条件,比如vivo需要上架应用市场后才可开通
注意大坑:当APP在线时,走个推通道;APP离线时,走厂商推送。(除此之外,每个厂商推送还要需要申请消息分类,在消息推送时下发标识)
结论
uni-push是DCloud推出的、全端的、云端一体的统一推送服务。
当我们使用 uni-app 开发应用时,使用 uni-push 是最方便的,如下:
unipush 拥有个推的收费功能
集成了个推和厂商推送两种推送方式,会自动根据判定APP是否在线,来决定采用哪种方式推送,以保证推送消息的送达率。
尽管使用 unipush,但服务端需使用的文档参考,仍然是个推官网的文档。
推荐使用unipush2.0,集成了一些推送方法,服务端不需要很麻烦了,但这其中有一些坑,下面我会提到。
1.3 理解通知消息 & 透传消息的区别
通知消息 透传消息
不同 官方 封装 了消息模板、以及客户端点击消息后的事件,若只需要简单地发出消息推送,不处理复杂的点击后的逻辑,使用通知消息即可。 完全 可自定义 模板及点击消息后事件的消息,若需要处理自定义的点击后的逻辑,使用透传消息更佳。
1.4 理解cid & 在线推送 & 离线推送的区别
ClientId 在线推送 离线推送
简介 个推业务层中的对外用户标识,用于标识客户端身份,由第三方客户端获取并保存到第三方服务端,是个推 SDK 的唯一识别号。 app 在前台打开运行时,通过个推渠道下发消息。 app在后台、锁屏、进程关闭时,通过厂商渠道下发消息。
特点 简称CID 在线走个推 若未集成 android 多厂商、未配置 ios 推送证书,则该机型无法使用离线推送。
1.5 消息下发流程
二、uniPush2.0推送流程
注意:unipush 内部封装好了个推及主流厂商 SDK,开发者在使用前必须开通相关服务。
2.1 登录开发者中心配置应用信息(这里我使用的云打包自有证书)
2.2 开启消息推送服务
2.3 开通离线厂商推送服务(因为我个人使用华为手机,方便起见以华为为例)
若未完成开通离线厂商推送,只