• iOS的推送机制APNs:本地推送&远程推送


    本地推送:

      本地推送主要应用在备忘录,闹钟等本地的,基于时间定时的消息提醒。本篇不做详细描述。

    远程推送:APNS(苹果推送通知服务)

               

    iOS远程推送机制的原理及流程:

      注册推送(橙色部分):若该App允许接收推送消息,则先要在代码中注册远程推送。注册推送后,iOS带着设备序列号去请求ANPS而获得deviceToken。然后App把deviceToken发送给我们App的服务器。因为若服务器有消息给我们推送时,它会把要发送的消息和deviceToken按照一定的格式一并打包发送给ANPS服务器。

      消息推送(蓝色部分):原本App的服务器和客户端是直接进行数据交互的,但iOS推送消息时必须经由APNS服务器。我们App先把要发送的消息和目标设备deviceToken按照一定的格式发送给APNS,APNS再推送给我们设备上的App客户端。

      

    关于服务器具体是如何打包数据的。以及App在手机上被卸载后,APNS是如何处理的,还会向它发送推送消息吗?

    这篇博客总结的很好:点击进入

    当APP被卸载后,APP服务器和APNS还会向APP发送消息吗?答案是否定的。因为APNS有反馈机制(feedback service)。当APNS服务器把消息推送给我们的设备,但设备无法找到APP发送给它时,就会给APNS服务器返回一条反馈信息,记录该设备已卸载APP,无法收到推送消息。那以后就不会再给那台设备推送消息了。

    代码实现:

    在AppDelegate.m中

    1. 首先给App注册远程推送:

    iOS8:

    先设置能接收的推送类型,根据类型生成settings,注册settings,注册远程推送。重写注册成功和失败的代理方法  

    iOS7:

    先设置推送类型,根据类型注册远程推送。重写代理方法。

    2. 获取到deviceToken的回调方法,以及推送消息接收成功后的回调方法

     

    需要的几个证书:

      参考:博客 《iOS远程推送需要的几个证书》

  • 相关阅读:
    基本类型
    匿名对象和匿名方法
    定时任务@SChedule详解
    docker的配置和安装
    数据库的学习
    docker的学习
    nginx的学习
    yyyy-MM-dd HH:mm:ss.SS的大小写的含义
    单例模式的学习
    layer的学习
  • 原文地址:https://www.cnblogs.com/wangerxiansheng/p/4495516.html
Copyright © 2020-2023  润新知