1

我正在编写一个带有 Rails API 后端的 iOS 应用程序。Rails 后端将向应用程序提供 JSON 数据。我有以下要求。

  1. 该应用程序将免费下载
  2. 该应用程序将在地图上显示数据
  3. 该应用程序将在用户附近显示数据
  4. 加载应用程序后,设备应向服务器发送一些唯一标识符,将其标识为运行此应用程序的设备。
  5. 由于不需要,因此不会对用户进行身份验证。下载该应用程序的任何人都可以使用这些数据。服务器只需要知道客户端是运行应用程序的设备。服务器无法向任何其他客户端提供数据
  6. 我想在设备和服务器之间使用 SSL 运行数据
  7. 用户位置将被发送到服务器,服务器返回用户附近的相应数据
  8. 客户端接收 JSON 并在本地缓存数据。

问题:鉴于这些要求,如何设置步骤 4 和 5?

另外:如果我想在这个主题上搜索更多,我应该搜索哪些关键字?

4

3 回答 3

1

考虑使用OpenUDIDSecureUDID

于 2012-09-04T17:04:02.157 回答
1

我给你2个选择。

首先,简单的方法。一段时间以来,苹果禁止访问设备 ID。但是,它们会给您一个设备令牌。

要获得此唯一令牌,用户必须注册远程通知。

在应用程序启动时,调用以下函数:

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

然后将调用此回调:

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

将令牌发送到您的服务器,您就完成了。这种方法的问题是显而易见的。您的用户必须注册远程通知。

另一种方法是使用 wi-fi 板的 MAC 地址。

去做这个:

IP地址.h

IP地址.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 回答