1

我正在开发一个 iPhone 应用程序。在某一时刻,用户键入电话号码。这些可以是任何格式,国际或本地。本地格式类似于514-123-4567(或更糟糕的是,只是123-4567),有没有办法将本地电话号码转换为国际格式(E.164)+15141234567:?这意味着找出这个国家是什么(如果可能的话,也可能是这个地区)。

一种方法是要求用户始终使用国际格式输入电话号码,或者选择她所在的国家/地区。但如果我可以避免这种情况,我认为它会更加用户友好。

我还想避免向用户请求对她进行地理定位的授权:很多用户拒绝地理定位。

理想情况下,我想得到她自己的电话号码的国家和地区。或者可能是当前运营商所在的国家/地区(以防用户在她所在国家以外的其他国家/地区漫游)。

但是,如果她在没有 SIM 卡的情况下将应用程序安装在 iPod 或 iPad 上怎么办?也许我可以使用语言环境?或者我可以尝试对 IP 地址进行地理定位?

有更好的想法吗?

4

1 回答 1

1
  1. 对于“转换”电话号码 - 你有一个例子:STPhoneFormatter

  2. 您可以使用 NSLocale 来确定如何本地化您的客户 - 但不能确定用户在哪里(区域设置和语言都是用户可配置的)。如果您真的想知道手机现在所在的国家/地区,请使用地理定位。

这里是 countryCode/country 的 NSLocale 示例:

NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
NSString *country = [locale displayNameForKey: NSLocaleCountryCode value: countryCode];  
于 2013-09-24T20:28:46.917 回答