点击消息推送通知时,如何根据消息类型,跳转到不同的界面?
由于不同手机厂商所支持的推送方式不同,需要针对不同的推送方式进行处理。
1. 透传推送
系统收到推送通知后,会将IM拉起。IM启动之后,主动去IM Server拉取消息,拉取消息成功之后,判断此时IM是否处于后台,如果处于后台的话,主动显示通知。
目前,华为、小米采用透传方式进行推送
当推送采用透传方式时,所有通知相关的操作都是由IM自己处理的,开发者可以通过修改WfcNotificaitonManager#handleReceiveMessage
添加业务相关逻辑,比通知显示的内容、点击通知的跳转等。
2. 通知栏
系统收到推送通知后,不会将IM拉起,而是直接显示通知。
目前OPPO、VIVO、魅族采用通知栏方式进行推送
当采用通知栏推送时,通知栏显示的内容、点击推送的跳转页面,在调用对应厂商的推送接口时,就已经决定, 需要push-server配合修改才能实现相关功能。
- 端上对消息进行
encode
时,将推送需要用到的业务数据等等设置到MessagePayload.pushData
中,建议采用json格式 - 参考对应推送平台的服务端开发文档,根据待推送消息
pushData
等相关数据,拼接推送参数。 - 参考对应推送平台的客户端开发文档,点击通知时,会有相应回调,并且会带上上一步所配置的参数等,可在此处进行相关页面跳转处理。注意,有的推送平台,可在上一步就完全决定决定通知的显示及点击跳转,本步骤可忽略。