将用户帐户链接到设备令牌以进行推送通知

我有一个应用程序设置了API服务器,每个用户在下载应用程序时通过电子邮件或Facebook创build一个帐户。 这些信息都存储在后端。 我想启用推送通知,以便他们是用户特定的。 我知道在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); } 

我正确地认为,当用户login时,我可以发送设备令牌到我的服务器,并将其与该用户关联? 我可以在API调用中添加一个属性来处理这个属性,我只是想确保与苹果公司的预期做法保持一致。 然后,当用户注销时,我只是从他们的用户名清除设备令牌,以便如果另一个用户login在同一个设备上,我不会有一个重复的令牌。

这正是你应该做的。 在didRegisterForRemoteNotificationsWithDeviceToken ,可以在本地存储设备令牌,然后当用户login时,可以将带有用户标识的设备令牌发送到服务器。