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 に答える