Getting country calling prefix

后端 未结 10 1244
耶瑟儿~
耶瑟儿~ 2020-12-28 21:04

Just wondering whether there are easy ways to retrieve country calling code from a user\'s phone.

For example, my app would like to pre-fill country

相关标签:
10条回答
  • 2020-12-28 21:56

    Well an alternate and proven way is to call WebService for this you can use http://www.webservicex.net/country.asmx's GetISD WebMethod and pass current location's country.

    This way you can be sure that you get the relevant ISD ID for the country from where user accessing the app.

    Other way is to have all the ISO countries in you SQLite database and then you perform lookup based on current location's country and show the respective entry.

    How to retrieve user's current city name? is way to find country name using CLLocationManager.

    Hope this helps,

    Thanks, Jigar

    0 讨论(0)
  • 2020-12-28 22:00

    you need to put all the country codes in a csv file , so that later on you can read the country codes from that particular file and sort the data for a particular country code . following is the complete list of country codes

    Afghanistan-93,
    Albania-355,
    Algeria-213,
    Andorra-376,
    Angola-244,
    Argentina-54,
    Armenia-374,
    Australia-61,
    Austria-43,
    Azerbaijan-994,
    Bahrain-973,
    Bangladesh-880,
    Belarus-375,
    Belgium-32,
    Belize-501,
    Benin-229,
    Bhutan-975,
    Bolivia-591,
    BosniaandHerzegovina-387,
    Botswana-267,
    Brazil-55,
    Brunei-673,
    Bulgaria-359,
    BurkinaFaso-226,
    Burundi-257,
    Cambodia-855,
    Cameroon-237,
    Canada-1,
    CapeVerde-238,
    CentralAfricanRepublic-236,
    Chad-235,
    Chile-56,
    China,People'sRepublicof-86,
    Colombia-57,
    Comoros-269,
    Congo,DemocraticRepublicofthe(CongoヨKinshasa)-243,
    Congo,Republicofthe(CongoヨBrazzaville)-242,
    CostaRica-506,
    Coted'Ivoire(IvoryCoast)-225,
    Croatia-385,
    Cuba-53,
    Cyprus-357,
    CzechRepublic-420,
    Denmark-45,
    Djibouti-253,
    Ecuador-593,
    Egypt-20,
    ElSalvador-503,
    EquatorialGuinea-240,
    Eritrea-291,
    Estonia-372,
    Ethiopia-251,
    Fiji-679,
    Finland-358,
    France-33,
    Gabon-241,
    Gambia,The-220,
    Georgia-995,
    Germany-49,
    Ghana-233,
    Greece-30,
    Guatemala-502,
    Guinea-224,
    Guinea-Bissau-245,
    Guyana-592,
    Haiti-509,
    Honduras-504,
    Hungary-36,
    Iceland-354,
    India-91,
    Indonesia-62,
    Iran-98,
    Iraq-964,
    Ireland-353,
    Israel-972,
    Italy-39,
    Japan-81,
    Jordan-962,
    Kazakhstan-7,
    Kenya-254,
    Kiribati-686,
    Korea,DemocraticPeople'sRepublicof(NorthKorea)-850,
    Korea,Republicof(SouthKorea)-82,
    Kuwait-965,
    Kyrgyzstan-996,
    Laos-856,
    Latvia-371,
    Lebanon-961,
    Lesotho-266,
    Liberia-231,
    Libya-218,
    Liechtenstein-423,
    Lithuania-370,
    Luxembourg-352,
    Macedonia-389,
    Madagascar-261,
    Malawi-265,
    Malaysia-60,
    Maldives-960,
    Mali-223,
    Malta-356,
    MarshallIslands-692,
    Mauritania-222,
    Mauritius-230,
    Mexico-52,
    Micronesia-691,
    Moldova-373,
    Monaco-377,
    Mongolia-976,
    Montenegro-382,
    Morocco-212,
    Mozambique-258,
    Myanmar(Burma)-95,
    Namibia-264,
    Nauru-674,
    Nepal-977,
    Netherlands-31,
    NewZealand-64,
    Nicaragua-505,
    Niger-227,
    Nigeria-234,
    Norway-47,
    Oman-968,
    Pakistan-92,
    Palau-680,
    Panama-507,
    PapuaNewGuinea-675,
    Paraguay-595,
    Peru-51,
    Philippines-63,
    Poland-48,
    Portugal-351,
    Qatar-974,
    Romania-40,
    Russia-7,
    Rwanda-250,
    Samoa-685,
    SanMarino-378,
    SaoTomeandPrincipe-239,
    SaudiArabia-966,
    Senegal-221,
    Serbia-381,
    Seychelles-248,
    SierraLeone-232,
    Singapore-65,
    Slovakia-421,
    Slovenia-386,
    SolomonIslands-677,
    Somalia-252,
    SouthAfrica-27,
    Spain-34,
    SriLanka-94,
    Sudan-249,
    Suriname-597,
    Swaziland-268,
    Sweden-46,
    Switzerland-41,
    Syria-963,
    Tajikistan-992,
    Tanzania-255,
    Thailand-66,
    Timor-Leste(EastTimor)-670,
    Togo-228,
    Tonga-676,
    Tunisia-216,
    Turkey-90,
    Turkmenistan-993,
    Tuvalu-688,
    Uganda-256,
    Ukraine-380,
    UnitedArabEmirates-971,
    UnitedKingdom-44,
    UnitedStates-1,
    Uruguay-598,
    Uzbekistan-998,
    Vanuatu-678,
    VaticanCity-379,
    Venezuela-58,
    Vietnam-84,
    Yemen-967,
    Zambia-260,
    Zimbabwe-263,
    Abkhazia-995,
    China,Republicof(Taiwan)-886,
    Somaliland-252,
    SouthOssetia-995,
    ChristmasIsland-61,
    Cocos(Keeling)Islands-61,
    NorfolkIsland-672,
    NewCaledonia-687,
    FrenchPolynesia-689,
    Mayotte-262,
    SaintBarthelemy-590,
    SaintMartin-590,
    SaintPierreandMiquelon-508,
    WallisandFutuna-681,
    CookIslands-682,
    Niue-683,
    Tokelau-690,
    Guernsey-44,
    IsleofMan-44,
    Jersey-44,
    BritishIndianOceanTerritory-246,
    BritishSovereignBaseAreas-357,
    FalklandIslands(IslasMalvinas)-500,
    Gibraltar-350,
    SaintHelena-290,
    HongKong-852,
    Macau-853,
    FaroeIslands-298,
    Greenland-299,
    FrenchGuiana-594,
    Guadeloupe-590,
    Martinique-596,
    Reunion-262,
    Aruba-297,
    NetherlandsAntilles-599,
    Svalbard-47,
    Ascension-247,
    TristandaCunha-290,
    PalestinianTerritories(GazaStripandWestBank)-970,
    WesternSahara-212,
    
    0 讨论(0)
  • 2020-12-28 22:05

    Here is a code to get calling prefix

    1)

    - (NSDictionary *)getCountryCodeDictionary {
        return [NSDictionary dictionaryWithObjectsAndKeys:@"972", @"IL",
                @"93", @"AF", @"355", @"AL", @"213", @"DZ", @"1", @"AS",
                @"376", @"AD", @"244", @"AO", @"1", @"AI", @"1", @"AG",
                @"54", @"AR", @"374", @"AM", @"297", @"AW", @"61", @"AU",
                @"43", @"AT", @"994", @"AZ", @"1", @"BS", @"973", @"BH",
                @"880", @"BD", @"1", @"BB", @"375", @"BY", @"32", @"BE",
                @"501", @"BZ", @"229", @"BJ", @"1", @"BM", @"975", @"BT",
                @"387", @"BA", @"267", @"BW", @"55", @"BR", @"246", @"IO",
                @"359", @"BG", @"226", @"BF", @"257", @"BI", @"855", @"KH",
                @"237", @"CM", @"1", @"CA", @"238", @"CV", @"345", @"KY",
                @"236", @"CF", @"235", @"TD", @"56", @"CL", @"86", @"CN",
                @"61", @"CX", @"57", @"CO", @"269", @"KM", @"242", @"CG",
                @"682", @"CK", @"506", @"CR", @"385", @"HR", @"53", @"CU",
                @"537", @"CY", @"420", @"CZ", @"45", @"DK", @"253", @"DJ",
                @"1", @"DM", @"1", @"DO", @"593", @"EC", @"20", @"EG",
                @"503", @"SV", @"240", @"GQ", @"291", @"ER", @"372", @"EE",
                @"251", @"ET", @"298", @"FO", @"679", @"FJ", @"358", @"FI",
                @"33", @"FR", @"594", @"GF", @"689", @"PF", @"241", @"GA",
                @"220", @"GM", @"995", @"GE", @"49", @"DE", @"233", @"GH",
                @"350", @"GI", @"30", @"GR", @"299", @"GL", @"1", @"GD",
                @"590", @"GP", @"1", @"GU", @"502", @"GT", @"224", @"GN",
                @"245", @"GW", @"595", @"GY", @"509", @"HT", @"504", @"HN",
                @"36", @"HU", @"354", @"IS", @"91", @"IN", @"62", @"ID",
                @"964", @"IQ", @"353", @"IE", @"972", @"IL", @"39", @"IT",
                @"1", @"JM", @"81", @"JP", @"962", @"JO", @"77", @"KZ",
                @"254", @"KE", @"686", @"KI", @"965", @"KW", @"996", @"KG",
                @"371", @"LV", @"961", @"LB", @"266", @"LS", @"231", @"LR",
                @"423", @"LI", @"370", @"LT", @"352", @"LU", @"261", @"MG",
                @"265", @"MW", @"60", @"MY", @"960", @"MV", @"223", @"ML",
                @"356", @"MT", @"692", @"MH", @"596", @"MQ", @"222", @"MR",
                @"230", @"MU", @"262", @"YT", @"52", @"MX", @"377", @"MC",
                @"976", @"MN", @"382", @"ME", @"1", @"MS", @"212", @"MA",
                @"95", @"MM", @"264", @"NA", @"674", @"NR", @"977", @"NP",
                @"31", @"NL", @"599", @"AN", @"687", @"NC", @"64", @"NZ",
                @"505", @"NI", @"227", @"NE", @"234", @"NG", @"683", @"NU",
                @"672", @"NF", @"1", @"MP", @"47", @"NO", @"968", @"OM",
                @"92", @"PK", @"680", @"PW", @"507", @"PA", @"675", @"PG",
                @"595", @"PY", @"51", @"PE", @"63", @"PH", @"48", @"PL",
                @"351", @"PT", @"1", @"PR", @"974", @"QA", @"40", @"RO",
                @"250", @"RW", @"685", @"WS", @"378", @"SM", @"966", @"SA",
                @"221", @"SN", @"381", @"RS", @"248", @"SC", @"232", @"SL",
                @"65", @"SG", @"421", @"SK", @"386", @"SI", @"677", @"SB",
                @"27", @"ZA", @"500", @"GS", @"34", @"ES", @"94", @"LK",
                @"249", @"SD", @"597", @"SR", @"268", @"SZ", @"46", @"SE",
                @"41", @"CH", @"992", @"TJ", @"66", @"TH", @"228", @"TG",
                @"690", @"TK", @"676", @"TO", @"1", @"TT", @"216", @"TN",
                @"90", @"TR", @"993", @"TM", @"1", @"TC", @"688", @"TV",
                @"256", @"UG", @"380", @"UA", @"971", @"AE", @"44", @"GB",
                @"1", @"US", @"598", @"UY", @"998", @"UZ", @"678", @"VU",
                @"681", @"WF", @"967", @"YE", @"260", @"ZM", @"263", @"ZW",
                @"591", @"BO", @"673", @"BN", @"61", @"CC", @"243", @"CD",
                @"225", @"CI", @"500", @"FK", @"44", @"GG", @"379", @"VA",
                @"852", @"HK", @"98", @"IR", @"44", @"IM", @"44", @"JE",
                @"850", @"KP", @"82", @"KR", @"856", @"LA", @"218", @"LY",
                @"853", @"MO", @"389", @"MK", @"691", @"FM", @"373", @"MD",
                @"258", @"MZ", @"970", @"PS", @"872", @"PN", @"262", @"RE",
                @"7", @"RU", @"590", @"BL", @"290", @"SH", @"1", @"KN",
                @"1", @"LC", @"590", @"MF", @"508", @"PM", @"1", @"VC",
                @"239", @"ST", @"252", @"SO", @"47", @"SJ", @"963", @"SY",
                @"886", @"TW", @"255", @"TZ", @"670", @"TL", @"58", @"VE",
                @"84", @"VN", @"1", @"VG", @"1", @"VI", nil];
    }
    

    2)

    #pragma mark - Custom Method 
    -(void)setDefaultCountryCode{
     NSString *countryIdentifier = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
     NSLog(@"%@",[NSString stringWithFormat:@"+%@",[[self getCountryCodeDictionary] objectForKey:countryIdentifier]]);
    }
    
    0 讨论(0)
  • 2020-12-28 22:05

    The NSLocaleCountryCode is the country code defined in ISO-3166, not the calling code. You need to find the calling code elsewhere.

    See Link for a complete list of ISO3166 -> calling code.

    0 讨论(0)
提交回复
热议问题