如何实现APP的如何做好app消息推送工作功能?

一、APP 推送概述:

App推送消息是我们常见的一种app消息提醒方式。

我们的实现需要第三方的支持,实现方式是后台通过接口将Push请求发送至第三方,第三方实现在App所在设备上的推送。

二、APP推送后台处理逻辑:

在与推送平台交互时,后台需要向第三方发送两部分信息,推送目标终端标示+推送内容

1、推送目标终端标示:

APP推送需要定位目标终端,也就是说要给那台设备进行推送,

简单的情况下,单设备推送,我们需要拿到一个终端ID的概念,用于定位目标设备,

注:不同渠道中使用的单设备ID方式也不尽相同,以下用TokenID来表示这个终端ID的概念。

而实际推送渠道中往往还有自定义的功能,比如通过打标签的方式将TokenID进行划分,达到批量差异化的效果。

即指通过API接口参数的定义终端上收到的Push消息的内容和格式。

其中IOS的推送消息在展示上区别于安卓的一点是没有title,title的部分只能是默认的APP名称,而安卓的部分虽然默认值也是APP名称,但是也支持自定义title。

通过上述的处理逻辑可得知,后端首先需要登记客户端的TokenId,然后保持TokenID的有效性更新,然后在需要发送APP推送时拿到用户的有效TokenID,

然后使用TokenID和已有的内容信息通过API与三方Push服务交互,完成推送。

即后端的实现分为两部分:

注:以下示例中有两个元素为本项目的特殊情况:

其中product_id是因为当前项目中客户端同时有多个版本,不同版本需要推送独立处理,但在同一张表内统一记登记;

而login_id跟member_id同时存在是因为当前系统中存在共享账户的情况,一般账号账户一对一的情况login_id和member_id是绑定的,不需要同时重复登记。

以下是现项目使用的TokenID登记表结构:
以下是APP上传TokenID接口上传参数列表:

注:其中,推送渠道绝对在做Push时使用哪家API,参数的判定交由客户端进行处理,后端直接登记判定结果。

以下是TokenID登记接口处理方法

注:方法外部有一个关于对应本账号的对账户列表的遍历,遍历中的处理部分为TokenID的登记处理操作。

APP推送不仅仅要求在APP打开状态时或者后台运行时进行消息推送,更多的场景是在移动终端关闭APP的场景下进行消息推送,

渠道的优劣无非在于两个维度,送达率和送达效率。

其中安卓推送的渠道较为杂乱,其中华为和小米提供的PUSH服务对于自平台的移动终端支持的较为完善,而没有厂商提供PUSH服务的终端只能通过

第三方服务来进行对接。

对于现有的这些渠道进行如下总结:

1、IOS:信鸽推送,这个推送在我门公司中经历了三个项目,推送效果稳定。API接入也方便,是IOS端的不二选择。

2、Android-华为:华为自平台。

3、Android-小米:小米自平台。

4、Android-其他:目前使用的是“极光推送”。在理想状态下送达率和送达效率表现很好,但并不如以上三家渠道稳定。

在进行调用时可根据之前定义的push_channel分发给各自的渠道,各渠道的具体对接请各自查看官网,API都很完善。

摘要:多个可以提高你安卓开发技能的开源学习的最佳方式就是阅读,对程序员来说也是如此。如何做一个崩溃率少于千分之三噶应用章节列表这个系列的有关架构的概念,适合有大概三年以上经验的同学理解。

SmallChart 是一个开源的 Android 图表库,拥有 5 种不同的图表类型来展示数据。可以通过输入的数据以及可设置的颜色、画笔大小等属性方便的创建图表。

Realm,为移动设备而生

替代 SQLite 和 Core Data。为你省下数周的时间和数千行的代码,帮你创造出更棒的用户体验。

我要回帖

更多关于 如何做好app消息推送工作 的文章

 

随机推荐