2013-05-03 95 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

相关问题