2013-06-12 110 views
0

每次用户登录时,我都需要为设备注册推送通知。iOS:推送通知并在登录时重新注册设备。

在我AppDelete.m现在我有以下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
... 
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert]; 
} 

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

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

    [self.pushClient registerDeviceToken:token withUser:loggedInUserName onSuccess:^{ 
     NSLog(@"successful registration"); 
    } onFailure:^(NSError *error) { 
     NSLog(@"error: %@", [error userInfo]); 
    }]; 
} 

问:什么我需要做的,每次打电话给我的应用程序委托,上述方法中用户登录?即该应用程序正在运行。用户注销并以不同的用户名重新登录,现在我需要用该用户名注册设备,我该怎么办?

回答

0

你需要坚持APNS的道理,这就是前进适合自己情况的方式。 当您的应用程序进入前台时,您将收到registerForRemoteNotificationTypes的电话。现在

  1. NSUserDefaults的自删除旧APNS令牌,如果任何(或任何你喜欢的持久性)
  2. 保存APNS令牌NSUserDefaults的进
  3. 和使用保存的令牌。
1

您可以随时调用该方法registerForRemoteNotificationTypes在用户登录后。