工作中需要用到APNs服务,所以打算将APNs的官方文档翻译出来,供有需求的朋友一起参考,水平有限,难免出错,还望不吝赐教。

总览

本地通知和远程通知

本地通知和远程通知就是所谓的两种不同类型的通知,他们的区别在于一个是广播类型的通知(由NSNotificationCenter类管理),一个可以选择性地通知。用户通知可以让一个不在前台运行的应用提醒用户他有新的消息。消息的内容可以是简单的一句话,可以是一个待完成的事项,也可以是任一一种数据。当手机操作系统弹出通知时,无论是本地通知还是远程通知,外观和提醒的声音都是一样的,都能够显示通知内容,显示应用角标。

收到通知时,用户可以选择点击消息,启动对应的应用以查看详细内容,也可以选择忽略该通知,此时,应用将不被唤醒。

摘要

本地通知和远程通知对于用户来说可能是一样的,但是他们有不同的应用场景,也有不同的实现方法。

本地通知和远程通知的对比

很多App希望能够在某一个特定的时间或者有有趣的事情发生时,能够通知App的使用者(即使App当前不在前台运行)。本地通知和远程通知都能够实现这样的需求。
如下所示,本地通知和远程通知具有不同的应用场景与条件限制:

  • 本地通知发送是由App本身控制的,它不需要App连上互联网;
  • 远程通知,也叫推送通知,它是由App的服务器(Provider)推送的并且经过APNs服务下发给设备的。

注册、调度和处理用户消息

如果要在某一个特定的时机发送本地通知,App需要注册一种通知类型(iOS8或者之后的版本),创建好通知(使用UILocalNotification或者NSUserNotification),并且设置好通知的时间。但是如果一个设备希望收到远程的推送通知,则App必须要注册通知类型,并且将用于标识不同设备的deviceToken上传给App自己的服务器(Provider)。

如果操作系统下发了一条本地或者远程通知,并且当前App不在前台运行,操作系统将会以弹出通知、播放声音、显示角标等方式通知用户,此时如果用户点击消息中的按钮,则对应的App将会被启动,并且会将收到的本地通知或者远程通知的内容传递给某个函数。如果收到通知时,App运行在前台,App代理将会默默地接收通知。

iOS8之后,开发者可以自定义通知消息中点击按钮时执行的操作,此外,当用户到达某一特定位置时,也能够收到基于位置推送的通知。

苹果消息推送服务

苹果推送服务(APNs)是用于给设备下发远程通知的一个服务。手机上的App和APNs服务器会建立一个安全的加密的连接以能够接收到通知消息。App的服务器同样也会和APNs建立一条持久的加密的安全连接,用于将消息推送给APNs。当需要给某个App推动通知时,App的服务器会将消息首先发给APNs,然后由APNs下发到手机。

新版的APNs API于2015年12月启用,它是一个异步的,基于HTTP2的用于给App服务器发送消息给APNs的接口。

远程通知的安全保障

为了推送一条通知到你的手机,你必须到Apple的Member Center去申请SSL证书。从2015年12月开始,新版的基于HTTP2的API允许开发者在测试环境和正式环境使用同一个证书。此外,使用该证书不仅能发消息到主App,也能将消息发给相关联的Apple Watch和后台运行的VoIP服务。

必备知识

为了实现本地通知和远程推送通知,开发者最好对SSL/TLS和Socket等相关知识有所了解。



后面章节的翻译敬请期待…

深入了解本地通知和远程通知

注册、调度、处理用户通知

苹果消息推送服务(APNs)介绍

授权和开发

消息格式

APNs开发者接口

苹果推送服务(APNs)中文文档相关推荐

  1. Apple Push Notification Service(苹果推送服务)

    https://developer.apple.com/library/IOS/documentation/NetworkingInternet/Conceptual/RemoteNotificati ...

  2. 苹果通知推送服务(APNS)关键特性摘要

    1. If APNs attempts to deliver a notification but the device is offline, the notification is stored ...

  3. 【FAQ】接入HMS Core推送服务过程中一些常见问题总结

    HMS Core 推送服务(Push Kit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道.开发者通过集成推送服务,可以向客户端应用实时推送消息,构筑良好的用户关系,提升用户的感知度和活 ...

  4. 顺丰物流轨迹推送服务接口Java文档

    为客户开发的顺丰物流轨迹推送服务接口是开放的API接口,主要用来接收顺丰快递推送的订单状态. 快递鸟在途监控汇集国内外1600多家快递公司的物流轨迹数据,以接口形式开放给用户使用,支持即时查询+订阅两 ...

  5. 手把手教你配置苹果APNS推送服务|钿畑的博客 | 钿畑的博客

    http://www.360doc.com/content/15/0118/17/1073512_441822850.shtml# 钿畑的文章索引 1. 什么是推送通知 2. 什么是APNS? 3. ...

  6. 手把手教你配置苹果APNS推送服务

    1. 什么是推送通知 消息通知分本地通知和远程推送通知,是没有运行在前台的应用程序可以让它们的用户获得相关消息通知的方式.消息通知可能是一条消息,即将发生的日历事件,或远程服务器的新数据.当被操作系统 ...

  7. 苹果消息推送服务教程:第二部分(共2部分)

    这篇文章还可以在这里找到 英语 Create a simple chat app with Apple Push Notification Services! 这个教程的原作者是Matthijs Ho ...

  8. 苹果消息推送服务教程:第2部分(共2部分)

    苹果消息推送服务教程:第2部分(共2部分) 转自 http://www.raywenderlich.com/zh-hans/24733/苹果消息推送服务教程:第而部分(共2部分) 这个教程的原作者是M ...

  9. 苹果消息推送服务教程(三步曲)-超详细

    mtrabelsi  (原作者) 第一部分 在iOS系统中,在后台运行的程序能够进行的操作是非常有限的.这种限制是为了节省手机电池. 但是,如果你需要在用户没有使用你的程序的情况下给他们推送消息该怎么 ...

最新文章

  1. linux:交叉编译后程序的下载方式
  2. Java 线程同步 synchronized
  3. Linux下/var/spool/clientmqueue空间不足的解决
  4. dockerhub 拉取地址_DockerHub 镜像仓库的使用详解
  5. 黑马程序员 Java 加强
  6. sh脚本和bash脚本_我是如何开始使用bash脚本的
  7. 内网和外网的区别_在家办公不再难,花生壳盒子助你内网穿透一臂之力
  8. php小数乘法,三 小数乘法精品|小学数学,北师大版,四年级下册,数学精品下载_21精品_21世纪教育网...
  9. 一文讲透 Serverless Kubernetes 容器服务
  10. android8修改默认壁纸,给surfaceview设置默认背景
  11. Ubuntu中ssh远程报错:packet_write_wait: Connection to 192.168.163.190 port 22: Broken pipe lost connection
  12. java 基础知识2
  13. 富士施乐2022网络扫描设置_富士施乐怎么设置扫描到PC?
  14. Java项目开发-基于Java的宠物领养管理系统(附源码)
  15. 【机器人学习】abb机器人运动学分析与轨迹规划(三维模型+matlab代码+word报告)
  16. 网络里面可以看到计算机打不开,为什么电脑有网络但是打不开网页?
  17. ISO 26262 标准小解
  18. java导出dbf文件生僻汉字处理
  19. c语言学习一 (c语言格式)
  20. 论文阅读——A HYBRID TEXT NORMALIZATION SYSTEM USING MULTI-HEAD SELF-ATTENTION FOR MANDARIN

热门文章

  1. 不管什么手机,开始这个设置,流畅度全速飙升70%
  2. 关于PCB线路板板材的那些事
  3. python可视化双向箭头_python学习之路--可视化利器matplotlib(下)
  4. 【雷达与对抗】【2013.08】相控阵系统的设计与应用
  5. 优秀的ELN应该具备怎样的特质
  6. word2010基础(笔记自用)
  7. 我国邮政行业现状调查:邮政成本没有精准算法
  8. 技术分享| 基于 Etcd 的分布式锁实现原理及方案
  9. 网络流最小割 王者之剑
  10. JAP关联MyBatis