2013-05-03 37 views
4

我有一個使用API​​服務器設置的應用程序,每個用戶在下載應用程序時通過電子郵件或Facebook創建帳戶。該信息全部存儲在後端。我想啓用推送通知,以便它們是用戶特定的。我知道APNS服務器等後端需要做什麼。我的問題是將設備令牌與用戶帳戶相關聯,這樣我就可以根據來自服務器的邏輯向正確的用戶發送正確的信息。將用戶帳戶鏈接到設備令牌以進行推送通知

我知道,我把這個代碼在applicationDidFinishLaunching

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 

    // Let the device know we want to receive push notifications 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes: 
     (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 

    return YES; 
} 

然後我從這裏搶設備ID:

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 
{ 
    NSLog(@"My token is: %@", deviceToken); 
} 

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error 
{ 
    NSLog(@"Failed to get token, error: %@", error); 
} 

我是在想,正確的,當用戶跡象我只需將設備令牌發送到我的服務器並將其與該用戶關聯即可?我可以在API調用中添加一個屬性來處理這個屬性,我只是想確保它與Apple的預期實踐保持一致。然後,當用戶註銷時,我只需從其用戶名中清除設備令牌,這樣如果其他用戶在同一設備上登錄,我就不會有重複的令牌。

回答

4

這正是你應該做的。在didRegisterForRemoteNotificationsWithDeviceToken中,您可以在本地存儲設備令牌,然後在用戶登錄時,可以將帶有用戶標識的設備令牌發送到服務器。

+0

非常感謝! – JeffN 2013-05-03 19:04:11

+0

可以在5分鐘內接受,並會做 – JeffN 2013-05-03 19:04:29

+0

不客氣! – Eran 2013-05-03 19:09:39

相關問題