2013-12-01 6 views
3

Я хотел разработать приложение с помощью Xcode. Когда я заканчиваю приложение и выпускаю его, как я могу определить ближайших пользователей моего приложения. Я хотел бы иметь возможность подключать пользователей, которые используют одно и то же приложение, на близком расстоянии. Где И как я могу начать изучать, как это сделать? Я хочу, чтобы иметь возможность отправлять сообщение, например, человеку, который использует мое приложение. Любые предложения были бы весьма полезными, Thank You,Поиск ближайших пользователей приложения

ответ

4

Есть несколько вариантов. Если вы хотите выяснить, какие устройства действительно близки, вы можете использовать Core Bluetooth для обнаружения близлежащих устройств, но это очень ограниченный диапазон и несколько выше того, что вам нужно.

Вместо этого вы можете использовать Core Location, чтобы отслеживать местоположение пользователя и отправлять эту информацию на сервер каждую минуту или около того, где вы можете сохранить список пользователей и их местоположение. Затем каждое устройство может также отправить запрос на ваш сервер, чтобы выяснить, какие другие пользователи находятся поблизости. Это имеет то преимущество, что вы можете обрабатывать множество вещей, таких как серверная часть диапазона, так что они не ограничены, скажем, силой сигнала bluetooth.

Если вы делали это из UIViewController подкласса может выглядеть примерно так:

-(void)viewDidLoad { 
    locationManager = [[CLLocationManager alloc] init]; //locationManager should be an instance variable 
    [locationManager setDesiredAccuracy:0.1]; 
    locationManager.delegate = self; //your class should conform to the CLLocationManagerDelegate protocol 
    [locationManager startUpdatingLocation]; 
} 

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { 

    CLLocation *location = [locations objectAtIndex:0]; 

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com/mylocationupdate"]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setHTTPBody:[[NSString stringWithFormat:@"latlon=%f,%f&identifier=%@", 
         location.coordinate.latitude, location.coordinate.longitude, /*something for you to identify each app user*/] 
         dataUsingEncoding:NSUTF8StringEncoding]]; 
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] 
        completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { 
     /*handle response*/ 
    } 
    [manager stopUpdatingLocation]; 
    [manager performSelector:@selector(startUpdatingLocation) withObject:nil afterDelay:60.0]; 

} 

С другой стороны, вы должны обрабатывать запросы к некоторым URL, как @"http://example.com/nearbyusers", который также будет принимать координатную пару. На сервере вы можете запросить запущенный список местоположений пользователей с некоторой базовой геометрией, чтобы выяснить, какие из них близки к заданным координатам. Затем вы должны вернуть этот список как JSON или XML или какой-либо другой формат, и ваше приложение проанализирует его, чтобы отобразить близких пользователей.

Смежные вопросы