“+”的电话号码是否与没有“+”的电话号码不同?
我的意思是A: +1(510)234-567
和B:1510234567
之类的数字。呼叫号码是否相同?我想拨打电话从地址簿中获取哪个号码。格式为A,使用后
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"-+() *#"];
txt = [[txt componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
数字格式为B。
这是一个很好的解决方案吗?
答案 0 :(得分:2)
来自维基百科文章 Telephone numbering plan ,国家/地区代码:
国家/地区代码 - 仅在拨打其他电话时才需要 国家。在国际使用中,电话号码以前缀为前缀 国家/地区代码前面加上“+”,并用空格代替 连字符(例如,“+ XX YYY ZZZ ZZZZ”)。这允许读者选择 他们的访问代码(也称为国际拨号数字) 需要从他们的位置拨打。但是,它经常被引用在一起 使用国际访问代码,必须在拨号前面 字符串,例如NANP国家的“011”(包括加拿大, 百慕大和美国):“011-XX-YYY-ZZZ-ZZZZ”,或“00”in 大多数欧洲国家:“00-XX-YYY-ZZZ-ZZZZ”。这可能会导致 在读者所在的地方可以使用不同的访问代码 位于。在GSM网络上,“+”是可以使用的实际字符 内部作为国际访问代码,而不仅仅是 会议。
看起来+
不是强制性的,但如果有人拨打国际区域,它就会清楚。
答案 1 :(得分:2)
以下代码可以帮助您解决问题!试一试。
- (NSURL *)makeCall:(NSString *)number
{
NSString *txt = number;
NSString *cleanedString = [[txt componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789-+()"] invertedSet]] componentsJoinedByString:@""];
NSURL *telURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel:%@", cleanedString]];
return telURL;
}
BOOL bCanCall = [[UIApplication sharedApplication]canOpenURL:urlToCall];
if (bCanCall)
{
UIWebView *callView = [[[UIWebView alloc]init] autorelease];
[callView loadRequest:[NSURLRequest requestWithURL:urlToCall]];
[self.view addSubview:callView];
}