5

我有一个使用 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

1 回答 1

6

这正是你应该做的。您可以将设备令牌存储在didRegisterForRemoteNotificationsWithDeviceToken本地,然后,当用户登录时,您可以将设备令牌与用户标识符一起发送到您的服务器。

于 2013-05-03T19:03:29.820 回答