详解iOS本地推送与远程推送

2020-01-15 19:07:21刘景俊

在实际编程时,如果想兼容iOS7以前,三个函数可同时使用,都列出来,系统会自动选择合适的调用。

6 总结下函数的调用:

首次安装后启动:

didRegisterForRemoteNotificationsWithDeviceToken 被调用

系统询问用户是否同意接收 Notifications

不管用户选择同意或拒绝,didRegisterUserNotificationSettings 被调用

应用非首次启动时:

如果 notifications 处于拒绝状态:didRegisterUserNotificationSettings 被调用

如果 notifications 处于允许状态

didRegisterForRemoteNotificationsWithDeviceToken 被调用

didRegisterUserNotificationSettings 被调用

应用运行过程中用户修改 notifications 设置:

从拒绝变为允许:didRegisterForRemoteNotificationsWithDeviceToken 被调用

从允许变为拒绝:什么也不发生

7 服务端推送的格式


{
 "aps" : {     // 必须有
  "alert" : "string",
  "body" : "string",
  "badge" : number,
  "sound" : "string"
 },
 "NotiId" : 20150821,  // 自定义key值
}

8 推送的大小限制

远程通知负载的大小根据服务器使用的API不同而不同。当使用HTTP/2 provider API时,负载最大为4kB;当使用legacy binary interface时,负载最大为2kB。当负载大小超过规定的负载大小时,APNs会拒绝发送此通知。

9 整体如下图所示(以微信推送为例):

iOS本地推送,iOS远程推送

10 最后,还需要申请证书,这里不再详述-_-

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ASPKU。


注:相关教程知识阅读请移步到IOS开发频道。