iOS 推送

1、推送的实现流程和原理:

用户打开app之后,会将唯一标识devicesToken(APNs与设备建立长链接之后下发的)发送给服务器,当有推送消息时,服务器将devicesToken和要推送的内容发送给APNs,苹果APNs会和设备进行长链接,将内容推送给设备,设备根据标识,找到要推送的app,显示推送内容。

2、iOS7和iOS8推送不同的地方:

第一点:iOS8之后初始化远程推送的接口改变,需要生成UIUserNotificationSetting,获取用户权限之后才能注册远程推送,而且可以引导用户到开启远程推送的页面,重新开启推送权限。

第二点:发送消息内容长度限制,iOS7是256字节,iOS8是2kb,iOS9是4kb,可以看出苹果在推送方面正在一步步做改进。

第三点:iOS8之后可以给推送添加action,下拉推送消息,可以选择按钮,然后进行不同的操作。

第四点:iOS8之后对voip推送的改进,为了不一直唤醒app增加耗电,苹果给voip的推送单独开了一个通道,和远程推送并行的通道,进行voip推送,收到voip推送之后,开启一个本地推送。

3、本地推送在一些app中也很重要,例如写日记的场景,可以在app后台运行特定时间后,给app发送一个本地推送,增加app的活跃度。第二个需要进行本地推送的时机是,app刚刚进入到后台,这时候可以给用户发送本地推送,iOS7之前可以后台运行10分钟,iOS8之后减少到了3分钟,而且需要开启后台任务。

4、静默推送,iOS7的时候有了静默推送,是远程推送的一种,静默推送没有声音,相当于是一个后台任务,来唤醒app30s,局限性是,当用户把app切换到后台,并将app杀死,这时候就会收不到静默推送。

静默推送的运用场景,当有新的音乐需要推送的时候,就会发送一个静默推送唤醒app,这时候就可以下载该音乐,然后才会给用户发送一个远程推送,用户打开app,音乐已经下载好了,就可以直接听了。

你可能感兴趣的:(iOS 推送)