我不需要精确的位置数据,我也不希望用户看到"此应用想要确定您的位置"警报。我只需要确定用户的国家/地区,假设他们通过网络或Wi-Fi连接互联网。
最好的方法是什么?有没有办法使用他们的IP?
这只有在有承运人的情况下才有效:
CTTelephonyNetworkInfo *netInfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netInfo subscriberCellularProvider];
NSString *mcc = [carrier mobileCountryCode];
并且NSLocale
不可靠,因为用户可以在其设备设置中更改它。出于同样的原因,无法使用设备的语言设置。我需要根据他们所在的国家/地区来定位。
答案 0 :(得分:1)
您可以获取用户的IP地址,并使用地理位置数据库根据此处所述的位置猜测其位置:https://en.wikipedia.org/wiki/IP_address_location。如果您只关心区域,您可以在区域互联网注册管理机构(https://en.wikipedia.org/wiki/Regional_Internet_registry)网站上找到一些数据来帮助您,因为它们可以控制特定区域的所有IP地址。
答案 1 :(得分:1)
请参阅此网址How can whatsapp know country code upon first run on iphone .. 希望这个问题和网址中的问题我给你的作品