2013-06-12 154 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在用戶登錄後。