如何在iPhone应用程序中将本地电话号码转换为国际格式?

时间:2013-09-24 16:55:55

标签: ios iphone format phone-number

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

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

我还想避免要求用户授权对她进行地理定位:许多用户拒绝地理定位。

理想情况下,我想获得自己国家和地区的电话号码。或者也许是当前运营商的国家(如果用户在其他国家漫游而不是她的国家)。

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

有更好的想法吗?

1 个答案:

答案 0 :(得分:1)

  1. 要“转换”电话号码,您可以在此处举例:STPhoneFormatter

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

  3. 这里是countryCode / country的NSLocale示例:

    NSLocale *locale = [NSLocale currentLocale];
    NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
    NSString *country = [locale displayNameForKey: NSLocaleCountryCode value: countryCode];  
    
相关问题