2

我在我的应用程序中使用 Expedia 创建酒店预订应用程序我有搜索选项来搜索州、国家/地区列表,即(印度泰米尔纳德邦)。有什么方法可以在我的 IOS 应用程序中获取城市和州的全部数据![我有如下图所示的搜索选项]

在此处输入图像描述

4

2 回答 2

1

您可能必须调用多个 API 才能实现此目的。您可以使用以下 API。

  1. http://api.drupal.org/api/drupal/includes%21locale.inc/function/country_get_list/7
  2. http://api.shopify.com/country.html
  3. http://www.geonames.org/export/web-services.html

您可以使用此 API 并填写您的UITableView. 然后您可以UISearchBar使用本地搜索进行搜索。

注意:如果您使用这些 API,请记住您的应用程序功能依赖于这些 API。如果他们不工作,您的应用程序将无法工作。如果他们的服务宕机,你的应用程序就宕机了。

于 2013-02-15T10:51:23.233 回答
0

最后我找到了解决方案。1)我使用了下面的 url 并以 json 格式获取特定文本的所有城市名称。http://ws.geonames.org/searchJSON?name_startsWith=madurai

2)然后在json解析器的帮助下解析数据。我在下面包含我的代码

       NSURLRequest *req = [NSURLRequest requestWithURL:locatioURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
        NSURLResponse *response;
        NSError *errorReq = nil;
        NSData *data = [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&errorReq];
//        NSString *udata = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//        NSString * newstr = [NSString stringWithFormat:@"%@",data];

        NSString *udata = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSData *temp = [udata dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
        NSString *dst = [[[NSString alloc] initWithData:temp encoding:NSASCIIStringEncoding] autorelease];

        NSDictionary * locationDictionary = [[NSDictionary alloc]initWithDictionary:[dst JSONValue]];



        NSMutableArray *  locallocationArray= [[NSMutableArray alloc] initWithArray:[locationDictionary objectForKey:@"geonames"]];

        NSLog(@"%@",locallocationArray);

        for (int i = 0; i<[locallocationArray count]; i++)
        {
            NSString * locationStr = [NSString stringWithFormat:@"%@,%@,%@",[[locallocationArray objectAtIndex:i]objectForKey:@"name"],[[locallocationArray objectAtIndex:i]objectForKey:@"adminName1"],[[locallocationArray objectAtIndex:i]objectForKey:@"countryName"]];
[oneTimeLocationArray addObject:locationStr];
}
}

然后在 TableView 中加载数组。

3) 如果您需要在 Phonegap 应用程序中实现此功能,请参考以下链接http://jqueryui.com/autocomplete/#remote-jsonp

谢谢

于 2013-04-02T10:21:07.473 回答