DylanXing 发布的文章

推送token在registerForRemoteNotifications后即可获取到,不论用户允许还是拒绝

token长度是可变的,不要写死

推送token是会随时变化的,即使是app在使用中.当推送token变化时,会重新回调application:didRegisterForRemoteNotificationsWithDeviceToken: 方法,你也可以随时手动调用registerForRemoteNotifications方法来快速拿到已有token

没有网络或连接远程APNS失败时,会调用didFailToRegisterForRemoteNotificationsWithError方法

以下情况APNs会重新生成新的device token

  • 用户在新设备重装app(可见生成规则和appleid有关)
  • 用户从备份还原设备
  • 用户重装系统
  • 其他系统事件

苹果官方出于隐私保护,禁止使用token来区分设备.换句话说,理论上是可以使用token来区分设备的.

用户拒绝推送请求后,再次调用registerForRemoteNotifications方法也不会再弹出窗口,所以,谨慎选择弹窗时机.

deviceToken拿到的为32位的data,可以使用[deviceToken description]查看,格式为<e49c54cc 8a13341d f9f67000 bb621456 43b308ad 777bb2e0 a3b27f0b fa323edc>,可以使用以下方法过滤<>空格

    NSString* token = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
    token = [token stringByReplacingOccurrencesOfString:@" " withString:@""];

- 阅读剩余部分 -