iOS APNs详解

概念

APNs(Apple Push Notification service)是远程通知功能的核心。 它是一种强大、安全且高效的服务,可供应用程序开发人员将信息传播到 iOS(以及间接的 watchOS)、tvOS 和 macOS 设备。

Workflow

如何使用

  1. 注册远程通知
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
         // Override point for customization after application launch.
         //注册远程通知,获取Device Token
         UIApplication.shared.registerForRemoteNotifications()
         return true
     }
    
  2. 处理成功回调
    func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    //发送Token到Provider服务器
    sendToken()
    }
    
  3. 处理失败回调
    func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
    //可以在一段时间后进行重试注册远程通知
     }
    

Device Token 重新生成的时机

  • 用户在新设备上安装你的应用
  • 用户从备份中恢复设备
  • 用户重新安装操作系统
  • 其他系统定义的事件

参考文档

APNs Overview
Registering your app with apns
Sending notification requests to apns
Generating a remote notification)