12

我不需要精确的位置数据,也不希望用户看到“此应用程序想要确定您的位置”警报。我只需要确定用户所在的国家/地区,假设他们通过网络或 Wi-Fi 连接互联网。

做这个的最好方式是什么?有什么方法可以使用他们的IP吗?

这只有在他们有运营商的情况下才有效:

CTTelephonyNetworkInfo *netInfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netInfo subscriberCellularProvider];
NSString *mcc = [carrier mobileCountryCode];

并且NSLocale不可靠,因为用户可以在他们的设备设置中更改它。出于同样的原因,无法使用设备的语言设置。我需要根据他们实际所在的国家/地区。

4

2 回答 2

1

请参阅此网址Whatsapp 首次在 iphone 上运行时如何知道国家/地区代码.. 希望这个问题和我给出的网址中的问题对您有用

于 2014-10-20T06:14:24.297 回答
1

您可以获取用户的 IP 地址并使用地理位置数据库来猜测他们的位置,如下所述:https ://en.wikipedia.org/wiki/IP_address_location 。如果您只关心地区,您可能可以在地区互联网注册机构 ( https://en.wikipedia.org/wiki/Regional_Internet_registry ) 网站上找到一些数据来帮助您,因为它们控制着特定地区的所有 IP 地址。

于 2013-07-11T00:17:35.163 回答