1

Rails API バックエンドを使用して iOS アプリを作成しています。Rails バックエンドは JSON データをアプリに提供します。次の要件があります。

  1. アプリは無料ダウンロードになります
  2. アプリは地図上にデータを表示します
  3. アプリはユーザーの近くのデータを表示します
  4. アプリをロードすると、デバイスは、このアプリを実行しているデバイスであることを識別する一意の識別子をサーバーに送信する必要があります。
  5. 必要ないため、ユーザーの認証はありません。アプリをダウンロードすれば、誰でもデータを利用できます。サーバーが知る必要があるのは、クライアントがアプリを実行しているデバイスであることだけです。サーバーは他のクライアントにデータを提供できません
  6. デバイスとサーバー間で SSL を使用してデータを実行したい
  7. ユーザーの位置がサーバーに送信され、サーバーはユーザーの近くにある対応するデータを返します
  8. クライアントは JSON を受信し、データをローカルにキャッシュします。

質問:これらの要件を考慮して、手順 4 と 5 を設定する方法を教えてください。

また、このトピックについてもっと検索したい場合は、どのキーワードでグーグル検索すればよいですか?

4

3 に答える 3

1

OpenUDIDまたはSecureUDID の使用を検討してください。

于 2012-09-04T17:04:02.157 に答える
1

2つの選択肢があります。

まずは簡単な方法から。しばらくして、Apple はデバイス ID へのアクセスを禁止しました。ただし、代わりにデバイス トークンが提供されます。

この一意のトークンを取得するには、ユーザーはリモート通知に登録する必要があります。

アプリケーションの起動時に、次の関数を呼び出します。

[[UIApplication sharedApplication] registerForRemoteNotificationTypes (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

次に、このコールバックが呼び出されます。

 - (void)application:didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken.

トークンをサーバーに送信すれば完了です。このアプローチの問題は明らかです。ユーザーはリモート通知に登録する必要があります。

もう 1 つの方法は、Wi-Fi ボードの MAC アドレスを使用することです。

これをする:

IPAddress.h

IPAddress.c

このファイルをプロジェクトにインポートします。次に、この関数を使用します。

InitAddresses();
GetHWAddresses();

for (int i=0; i<MAXADDRS; ++i)
{
    //There is a way you can obtain more info about the hw_addrs, but in general, it's the first.
    NSLog(@"MAC: %s",  hw_addrs[i]);
}

FreeAddresses();

上記の MAC アドレスを使用してハッシュを作成すれば完了です。

それが役に立てば幸い。

于 2012-09-04T17:36:44.153 に答える
0

最初の起動時に、アプリはサーバーにリクエストを送信します。こんにちは、私は新しいクライアントです。ID をください! サーバーは新しいランダムな ID を生成し、それを送り返します。アプリは ID をローカルに保存し、それを使用してそれ自体を一意に識別します。

于 2012-09-04T17:04:34.940 に答える