我能撤销deviceToken吗?

时间:2016-02-26 12:32:02

标签: ios apple-push-notifications

我收到了3个推送通知,内容相同。 一开始我觉得我收到了重复推送通知。

但我发现这个推送通知是由不同的deviceToken发送的。

当我通过Xcode一次又一次地重新安装app时可能出错了,所以APNS没有成功撤销deviceToken。

我的服务器存储了所有deviceTokens并通过这些deviceTokens推送通知,并且APNS中有一些deviceTokens将指向我的iPhone,所以我收到了很多通知。

如果我是对的,我可以撤销其他设备吗? 还是由其他原因造成的?

- (BOOL)application:(UIApplication *)application  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

// Register for Push Notitications, if running iOS 8
if ([application  respondsToSelector:@selector(registerUserNotificationSettings:)]) {
    UIUserNotificationType userNotificationTypes =    (UIUserNotificationTypeAlert |
                                                       UIUserNotificationTypeBadge |
                                                       UIUserNotificationTypeSound);
    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil];
    [application registerUserNotificationSettings:settings];
    [application registerForRemoteNotifications];
  } else {
    // Register for Push Notifications before iOS 8
    [application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                                     UIRemoteNotificationTypeAlert |
                                                     UIRemoteNotificationTypeSound)];
  }
}

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{

//send deviceToken to server
NSLog(@"Token is: %@", deviceToken);
}

1 个答案:

答案 0 :(得分:0)

重新安装应用程序会自动撤消旧令牌。因此,具有唯一捆绑ID的应用程序一次不能有多个令牌。

您可能在服务器端遇到问题,可能会向此令牌发送多个推送通知,或者可能会将同一令牌与多个用户相关联。