0

私のアプリケーションでは、pushNotification を使用します。その場合、デバイストークンをさまざまな方法で使用するにはどうすればよいですか?

この辺について詳しく説明します。

その時点でアプリケーションを実行するたびにデバイストークンが生成されますが、同じデバイスでアプリケーションを何度も実行すると、同じデバイストークンが生成されるかどうか?

Appleドキュメントとは異なるデバイストークンを生成する場合、サーバー側での処理方法は? クライアント側からサーバー側に送信するために正確に必要なもの (つまり、デバイストークンまたはその他のパラメーター) と、サーバー側で同じためにどのタイプのシナリオが必要ですか?

誰かが解決策、コードスニペット、または有用なリンクを持っている場合は、それをいただければ幸いです。

4

2 に答える 2

3

これは例であり、必ずしも動作するコードではありません:

- (void)sendProviderDeviceToken:(NSString *)tokenString {
    NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];

    NSString *bundleID = [[NSBundle mainBundle] bundleIdentifier];
    UIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

    NSString *data = [NSString stringWithFormat:@"udid=%@&token=%@&id=%@&type=%i", udid, tokenString, bundleID, type];
    NSString *escapedData = [[data description] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSString *httpRequestURLString = [NSString stringWithFormat:@"http://%@/RegisterDevice.cgi?%@", kRegistrationURI, escapedData];
    NSURL    *httpRequestURL       = [NSURL URLWithString:httpRequestURLString];
}
于 2009-10-03T13:30:10.257 に答える
0

CocoaFuの回答に対するあなたのコメントによると、Mishal

その時点でアプリケーションを起動するたびに、そのデバイスに対して異なるトークンが生成されるかどうかを意味しますか? そして、適切な方法でそれを処理する方法とは異なるトークンを生成する場合は?

iOS ドキュメントのこの段落は、デバイス トークンがユーザーのデバイスでいつ変更される可能性があるか、およびアプリが起動するたびにトークンを起動する理由を理解するのに役立ちます。

アプリケーションが起動するたびにデバイス トークンを要求してプロバイダーに渡すことで、プロバイダーがデバイスの最新のトークンを確実に取得できるようになります。ユーザーがバックアップが作成されたデバイス以外のデバイスにバックアップを復元する場合 (たとえば、ユーザーがデータを新しいデバイスに移行する場合)、再度通知を受信するには、アプリケーションを少なくとも 1 回起動する必要があります。ユーザーがバックアップ データを新しいデバイスに復元するか、オペレーティング システムを再インストールすると、デバイス トークンが変更されます。さらに、デバイス トークンをキャッシュしてプロバイダーに渡さないでください。必要なときはいつでもシステムからトークンを取得してください。アプリケーションが以前に登録されている場合は、registerForRemoteNotificationTypes を呼び出します。

于 2011-02-06T01:48:40.237 に答える