iOS Remote Notification远程消息推送处理

2020-01-17 21:20:57王冬梅

远程消息推送处理场景有三种:分别是app还没有运行、app在前台运行以及app在后台运行,下面介绍相关流程及三种场景下处理步骤

1.流程

(1)注册通知

首先是在注册远程消息推送,需要注意的是iOS8及以后的系统中注册方法有所改变(同时证书设置以及push权限也需要开启)。这一步的目的是,允许app接收远程消息推送。

iOS远程消息推送,iOS远程推送消息,iOS远程推送通知,iOS远程推送原理

iOS远程消息推送,iOS远程推送消息,iOS远程推送通知,iOS远程推送原理

(2)绑定deviceToken

deviceToken相当于设备的一个标识,服务器根据这个标识来进行消息推送。

①当用户同意app接收远程消息推送后,手机会向APNs发起一个请求去获取deviceToken;

②APNs收到请求,根据其相应流程及算法发送对应的deviceToken给手机;

③手机再将deviceToken传递给app;

④app再将deviceToken发送到后台服务器进行保存。

iOS远程消息推送,iOS远程推送消息,iOS远程推送通知,iOS远程推送原理

iOS远程消息推送,iOS远程推送消息,iOS远程推送通知,iOS远程推送原理

后台服务器以后就是根据deviceToken发送推送消息给APNs,APNs再根据deviceToken将消息推送到对应设备,设备再唤起app,显示推送而来的消息。

iOS远程消息推送,iOS远程推送消息,iOS远程推送通知,iOS远程推送原理

(3)针对远程推送消息进行处理

远程推送消息发送过来时,点开消息常常会有一些针对性处理或流程,最常见的就是跳转页面等,这里不再展开,下面将介绍不同场景下接收到推送后的处理步骤。

2.不同场景下推送消息的流程

(1)app在前台运行时收到推送

会调用“didReceiveRemoteNotification”方法,推送的数据在userInfo里,针对处理即可。

iOS远程消息推送,iOS远程推送消息,iOS远程推送通知,iOS远程推送原理

(2)app退出到后台状态时收到推送