苹果推送服务(APNs)中⽂⽂档
⼯作中需要⽤到APNs服务,所以打算将APNs的官⽅⽂档翻译出来,供有需求的朋友⼀起参考,⽔平有限,难免出错,还望不吝赐教。
太原食品
总览
本地通知远程通知
本地通知和远程通知就是所谓的两种不同类型的通知,他们的区别在于⼀个是⼴播类型的通知(由类管理),⼀个可以选择性地通知。⽤户通知可以让⼀个不在前台运⾏的应⽤提醒⽤户他有新的消息。消息的内容可以是简单的⼀句话,可以是⼀个待完成的事项,也可以是任⼀⼀种数据。当⼿机操作系统弹出通知时,⽆论是本地通知还是远程通知,外观和提醒的声⾳都是⼀样的,都能够显⽰通知内容,显⽰应⽤⾓标。
收到通知时,⽤户可以选择点击消息,启动对应的应⽤以查看详细内容,也可以选择忽略该通知,此时,应⽤将不被唤醒。
摘要肖雨雨个人资料
本地通知和远程通知对于⽤户来说可能是⼀样的,但是他们有不同的应⽤场景,也有不同的实现⽅法。
本地通知和远程通知的对⽐
很多App希望能够在某⼀个特定的时间或者有有趣的事情发⽣时,能够通知App的使⽤者(即使App当前不在前台运⾏)。本地通知和远程通知都能够实现这样的需求。
如下所⽰,本地通知和远程通知具有不同的应⽤场景与条件限制:
本地通知发送是由App本⾝控制的,它不需要App连上互联⽹;
远程通知,也叫推送通知,它是由App的服务器(Provider)推送的并且经过APNs服务下发给设备的。
注册、调度和处理⽤户消息
如果要在某⼀个特定的时机发送本地通知,App需要注册⼀种通知类型(iOS8或者之后的版本),创建好通知(使⽤UILocalNotification 或者),并且设置好通知的时间。但是如果⼀个设备希望收到远程的推送通知,则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开发者接⼝