Ok, bạn làm như thế nào với IP.
Vì vậy, geoplugin.net có thật đáng ngạc nhiên JSON api, nó mặc định địa chỉ IP đến hiện conection, vì vậy những gì bạn phải làm là thực hiện một yêu cầu đến địa chỉ này:
http://www.geoplugin.net/json.gp
Astunishing! Nó trả lại, cho tôi, dữ liệu này:
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
})
Vâng, bây giờ những gì bạn phải làm là phân tích cú pháp "JSON" này. Nó không thực sự là một JSON vì nó có trình bao bọc geoplugin({data})
này. Vì vậy, bạn có thể uể oải thực hiện một số lọc, loại bỏ những phần của một NSSTring, có thể.
Tôi thấy bạn đang vội vàng, vì vậy tôi đã dành thời gian rảnh rỗi của tôi để viết một số mã cho bạn. Nó rất không chuẩn vì tôi không biết liệu bạn có đang sử dụng bất kỳ khung công tác REST nào có thể trợ giúp hay không, nhưng ở đây:
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.
}
Ngay bây giờ tôi có thể phát hiện "en_" với ngôn ngữ ...Điều này sẽ luôn luôn là trường hợp ở Hoa Kỳ? –
Locale là người dùng có thể cấu hình. Ví dụ: một người sống ở Hoa Kỳ nói tiếng Trung Quốc có thể có ngôn ngữ và ngôn ngữ của điện thoại được đặt ở Trung Quốc. Bạn không nên sử dụng ngôn ngữ của người dùng để xác định vị trí của họ; nó nên được sử dụng để xác định cách bản địa hóa nội dung của chúng. –