推送集成总结

实现原理

不管是小米推送还是华为推送,他们底层都是依赖自己的推送服务进程,推送服务进程是系统进程,所以基本上会一直存活。
首先客户端集成提供的SDK以后,会通过进程间通信去推送服务进程中申请token,在申请的时候推送服务就回去检测各种设置,包括是不是自家的手机啊,满足不满足自家的协议啊等,按照文档来都没问题。

然后token申请到以后,推送服务进程会通过进程间通信将token传递给APP集成的SDK,然后SDK通过广播的形式传递给我们自己的应用,所以我们在集成的时候就会要求我们自定义广播。

下面是华为推送集成的图片
在这里插入图片描述

消息分两种

推送通知和透传消息
推送通知:即是通知栏提示,通知栏的弹出由集成的服务来完成
透传消息:即推送服务器自定义消息格式,推送服务只起通道的作用,这种消息不会以页面的形式存在,只能是程序后台处理。
透传消息的好处:

1:后台直接推送给应用,用户无感知
2:收到消息可以直接执行动作,不用像推送通知一样,还需要点击通知
弊端:

1: 透传消息必须应用进程在才能够收到,因为透传消息是通过广播的形式发送到客户端的,而推送通知可以在应用被杀死的时候收到

总结:

推送通知,由于是系统级别的提醒,所以即使应用被杀死的情况下,也能弹出通知提醒,但是它不能直接传递到APP的内部,需要用户点击通知栏拉起进程,跳转页面。

透传消息,直接将消息传递到APP的内部,后台处理消息,但是在进程被杀死的情况下不能够收到。

系统级别的推送,比如小米、华为是通过它们自己的系统进程来做的保活,第三方推送是通过手机上APP的相互拉起来做的保活,比如今日头条也使用了友盟推送,当你的应用推送通知的时候,如果你的应用进程不存在,它会通过今日头条的推送进程来发送其他应用的推送通知,带来的问题是,当此第三方推送通知量特别大的时候,推送的响应时间会变长,因为推送的通知需要排队。

猜你喜欢

转载自blog.csdn.net/static_zh/article/details/89848080