Bien, ¿cómo se hace eso con la IP?
Así, geoplugin.net tiene es increíble API JSON, el valor predeterminado es la IP al momento de conexión, por lo que lo que tiene que hacer es hacer una petición a la siguiente dirección:
http://www.geoplugin.net/json.gp
Astunishing! Vuelve, para mí, estos datos:
geoPlugin({
"geoplugin_request":"201.6.226.233",
"geoplugin_status":200,
"geoplugin_city":null,
"geoplugin_region":"São Paulo",
"geoplugin_areaCode":0,
"geoplugin_dmaCode":0,
"geoplugin_countryCode":"BR",
"geoplugin_countryName":"Brazil",
"geoplugin_continentCode":"SA",
"geoplugin_latitude":-23.473301,
"geoplugin_longitude":-46.665798,
"geoplugin_regionCode":27,
"geoplugin_regionName":"São Paulo",
"geoplugin_currencyCode":"BRL",
"geoplugin_currencySymbol":"R$",
"geoplugin_currencyConverter":2.0198
})
Bueno, ahora lo que tiene que hacer es analizar esta "JSON". En realidad no es un JSON ya que tiene este contenedor geoplugin({data})
. Entonces podrías ejecutar algunos filtros de forma perezosa, eliminando esas partes de un NSSTring, tal vez.
Veo que tiene prisa, así que tomé mi tiempo libre para escribir un código para usted. No es muy estándar, ya que no sé si está utilizando un marco REST que ayudaría, pero aquí va:
NSString *url = [NSString stringWithFormat:@"http://www.geoplugin.net/json.gp"];
NSString *locationData = [[NSString alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]
encoding:NSUTF8StringEncoding]];
locationData = [locationData stringByReplacingOccurrencesOfString:@"geoPlugin(" withString:@""];
locationData = [locationData stringByReplacingOccurrencesOfString:@")" withString:@""];
//user some json parser here.
if([[[locationData JSONValue] valueForkey:@"geoplugin_countryCode"] isEqualToString:@"US"]){
//proceed.
}
Ahora puedo detectar "en_US" con la configuración regional ...¿Esto SIEMPRE será el caso en los Estados Unidos? –
La configuración regional es configurable por el usuario. Por ejemplo, alguien que vive en los Estados Unidos que habla chino podría tener el idioma y el lugar de su teléfono configurado en China. No debe usar la configuración regional de un usuario para determinar dónde se encuentran; debería usarse para determinar cómo localizar su contenido. –