用户通知分为两类:
- 本地通知:本地通知是由 App 发送到当前设备上,不需要网络支持---------这里说的不需要网络支持指第三方网络。毕竟app收到服务器发送的消息再给ios系统是需要网络的
- 远程通知:远程通知是由 App 的服务器发送到苹果的 APNS服务器,并由 APNS服务器转发到相应设备(由 App 服务器指定接收通知的设备)。----------相当于不是app直接收到消息,而是IOS直接收到消息告诉APP
IOS的推送服务只有一个,因为只有苹果一家公司用IOS系统。但是安卓的厂商很多,并且都有自己的推送服务。所以如果你要支持多种类型的手机,则需要跟所有的安卓厂商的推送服务联调。所以还是使用第三方的服务,比如极光,它已经连接很多厂商的推送服务,省去了我们接入各种品牌厂商推送服务的麻烦
参考引用文章:
- https://blog.csdn.net/shenjie12345678/article/details/41120637
- https://blog.csdn.net/vivianliulu/article/details/95474840
- https://blog.csdn.net/weixin_34396103/article/details/91457681
IOS消息推送---安卓的大同小异
首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps:其实每一篇教程都有),先来看一张苹果官方对其推送做出解释的概要图。它的流程如下所示:
- Provider是给你手机应用发出推送消息的服务器---------------------------------------------推送服务程序把要发送的消息、目的设备的唯一标识打包,发给APNS。 推送服务就是我们的后台服务
- APNS(Apple Push Notification Service)则是苹果消息推送服务器。---------------APNS在自身的已注册Push服务的应用列表中,查找有相应标识的设备,并把消息发送到设备。 应用即APP,标识即哪个用户。
- 你本地的服务器当需要给应用推送一条消息的时候,先要将消息发出到苹果推送服务器,然后再由苹果推送服务器将消息发到安装了该应用的手机。-------iOS系统把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。即手机接收到消息,在发送给APP
比较全面的流程图如下所示:
1.由App向iOS设备发送一个注册通知,用户需要同意系统发送推送。----------该用户的唯一标识注册到APNS 2.iOS向APNS远程推送服务器发送App的Bundle Id和设备的UDID。------------------唯一标识信息 3.APNS根据设备的UDID和App的Bundle Id生成deviceToken再发回给App。--------------------生成用户tken 4.App再将deviceToken发送给远程推送服务器(自己的服务器), 由服务器保存在数据库中。----------------服务器保存用户token,用于信息发送 5.当自己的服务器想发送推送时, 在远程推送服务器中输入要发送的消息并选择发给哪些用户的deviceToken,由远程推送服务器发送给APNS。 6.APNS根据deviceToken发送给对应的用户。-----------------有此可见device Token可以区分到登录用户的信息。同时:· deviceToken 可能会变,如果你更改了你项目的bundle Identifier或者APNS服务器更新了可能会变。
- App打开推送开关,用户要确认TA希望获得该App的推送消息
- App获得一个DeviceToken
- 将该Device Token传送给后台服务,并存储用于给该用户发送信息