ios 获取国家/地区呼叫前缀
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/13116019/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Getting country calling prefix
提问by
Just wondering whether there are easy ways to retrieve country calling codefrom a user's phone.
只是想知道是否有简单的方法可以从用户的电话中检索国家/地区电话代码。
For example, my app would like to pre-fill country calling code for the users.
例如,我的应用程序希望为用户预先填写国家/地区呼叫代码。
If the user is located in the U.S. the code +1 will be returned, +83 for China, +61 for Australia etc.
如果用户位于美国,将返回代码 +1,china +83,澳大利亚 +61 等。
I had a look around but I could only see:
我环顾四周,但我只能看到:
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
Which returns the abbreviation for the country code, not the calling prefix?
哪个返回国家代码的缩写,而不是呼叫前缀?
Help is appreciated!
帮助表示赞赏!
采纳答案by rmaddy
See RMPhoneFormatfor a class that provides this information as well as formatting phone numbers.
有关提供此信息以及格式化电话号码的类,请参阅RMPhoneFormat。
Note: this was created by me.
注意:这是我创建的。
回答by Hardik Thakkar
Here is a code to get calling prefix
这是获取呼叫前缀的代码
1)
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)
2)
#pragma mark - Custom Method
-(void)setDefaultCountryCode{
NSString *countryIdentifier = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
NSLog(@"%@",[NSString stringWithFormat:@"+%@",[[self getCountryCodeDictionary] objectForKey:countryIdentifier]]);
}
回答by kalyan711987
By using coretelephony.framework
you can get the country code of the phone number.
通过使用coretelephony.framework
您可以获得电话号码的国家代码。
CTTelephonyNetworkInfo *info = [CTTelephonyNetworkInfo new];
CTCarrier *carrier = info.subscriberCellularProvider;
NSLog(@"Country code is: %@",carrier.mobileCountryCode);
回答by Meet
I have come across one more such simple solution on cocoacontrols.com.
我在 cocoacontrols.com 上又遇到了一个这样简单的解决方案。
Please check the Country List for iOS.
It has a json file which can be configured to update more information and used as required.
它有一个 json 文件,可以配置它来更新更多信息并根据需要使用。
回答by lqs
回答by Hesham
Use HMDiallingCode. It uses CoreLocation and reverse geocoding to determine the country of the user, then retrieve it's international dialling code.
使用HMDiallingCode。它使用 CoreLocation 和反向地理编码来确定用户的国家,然后检索其国际拨号代码。
回答by Den
Swift
迅速
let callingCodes = ["AD":"376","AE":"971","AF":"93","AG":"1","AI":"1","AL":"355","AM":"374","AN":"599","AO":"244","AR":"54","AS":"1","AT":"43","AU":"61","AW":"297","AZ":"994",
"BA":"387","BB":"1","BD":"880","BE":"32","BF":"226","BG":"359","BH":"973","BI":"257","BJ":"229","BL":"590","BM":"1","BN":"673","BO":"591","BR":"55","BS":"1","BT":"975","BW":"267","BY":"375","BZ":"501",
"CA":"1","CC":"61","CD":"243","CF":"236","CG":"242","CH":"41","CI":"225","CK":"682","CL":"56","CM":"237","CN":"86","CO":"57","CR":"506","CU":"53","CV":"238","CX":"61","CY":"537","CZ":"420",
"DE":"49","DJ":"253","DK":"45","DM":"1","DO":"1","DZ":"213",
"EC":"593","EE":"372","EG":"20","ER":"291","ES":"34","ET":"251",
"FI":"358","FJ":"679","FK":"500","FM":"691","FO":"298","FR":"33",
"GA":"241","GB":"44","GD":"1","GE":"995","GF":"594","GG":"44","GH":"233","GI":"350","GL":"299","GM":"220","GN":"224","GP":"590","GQ":"240","GR":"30","GS":"500","GT":"502","GU":"1","GW":"245","GY":"595",
"HK":"852","HN":"504","HR":"385","HT":"509","HU":"36","ID":"62","IE":"353",
"IL":"972","IM":"44","IN":"91","IO":"246","IQ":"964","IR":"98","IS":"354","IT":"39",
"JE":"44","JM":"1","JO":"962","JP":"81",
"KE":"254","KG":"996","KH":"855","KI":"686","KM":"269","KN":"1","KP":"850","KR":"82","KW":"965","KY":"345","KZ":"77",
"LA":"856","LB":"961","LC":"1","LI":"423","LK":"94","LR":"231","LS":"266","LT":"370","LU":"352","LV":"371","LY":"218",
"MA":"212","MC":"377","MD":"373","ME":"382","MF":"590","MG":"261","MH":"692","MK":"389","ML":"223","MM":"95","MN":"976","MO":"853","MP":"1","MQ":"596","MR":"222","MS":"1","MT":"356","MU":"230","MV":"960","MW":"265","MX":"52","MY":"60","MZ":"258",
"NA":"264","NC":"687","NE":"227","NF":"672","NG":"234","NI":"505","NL":"31","NO":"47","NP":"977","NR":"674","NU":"683","NZ":"64",
"OM":"968",
"PA":"507","PE":"51","PF":"689","PG":"675","PH":"63","PK":"92","PL":"48","PM":"508","PN":"872","PR":"1","PS":"970","PT":"351","PW":"680","PY":"595",
"QA":"974",
"RE":"262","RO":"40","RS":"381","RU":"7","RW":"250",
"SA":"966","SB":"677","SC":"248","SD":"249","SE":"46","SG":"65","SH":"290","SI":"386","SJ":"47","SK":"421","SL":"232","SM":"378","SN":"221","SO":"252","SR":"597","ST":"239","SV":"503","SY":"963","SZ":"268",
"TC":"1","TD":"235","TG":"228","TH":"66","TJ":"992","TK":"690","TL":"670","TM":"993","TN":"216","TO":"676","TR":"90","TT":"1","TV":"688","TW":"886","TZ":"255",
"UA":"380","UG":"256","US":"1","UY":"598","UZ":"998",
"VA":"379","VC":"1","VE":"58","VG":"284","VI":"340","VN":"84","VU":"678",
"WF":"681","WS":"685",
"YE":"967","YT":"262",
"ZA":"27","ZM":"260","ZW":"263"]
回答by Jigar Pandya
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.
好吧,另一种行之有效的方法是为此调用 WebService,您可以使用http://www.webservicex.net/country.asmx的 GetISD WebMethod 并传递当前位置的国家/地区。
This way you can be sure that you get the relevant ISD ID for the country from where user accessing the app.
通过这种方式,您可以确保获得用户访问应用程序所在国家/地区的相关 ISD ID。
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.
另一种方法是将所有 ISO 国家/地区都放在 SQLite 数据库中,然后根据当前位置的国家/地区执行查找并显示相应的条目。
How to retrieve user's current city name?is way to find country name using CLLocationManager
.
如何检索用户当前的城市名称?是使用CLLocationManager
.
Hope this helps,
希望这可以帮助,
Thanks, Jigar
谢谢,吉格
回答by Singh
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
您需要将所有国家/地区代码放在一个 csv 文件中,以便稍后您可以从该特定文件中读取国家/地区代码并对特定国家/地区代码的数据进行排序。以下是完整的国家代码列表
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'Ivtheitroade(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,
回答by AlBeebe
I created an NSDictionary containing country codes and calling codesthat you could use to lookup the calling code.
我创建了一个包含国家代码和调用代码的 NSDictionary,您可以使用它们来查找调用代码。
Using your above code and the NSDictionary you would do something like this...
使用上面的代码和 NSDictionary 你会做这样的事情......
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
NSString *callingCode = [dictCodes objectForKey:countryCode];