0

带“+”的电话号码与不带“+”的电话号码有区别吗?

我的意思是一个数字,例如A: +1(510)234-567and B:1510234567。通话的号码是同一个号码吗?我想拨打从通讯录中获取哪个号码的电话。格式为A,使用后,

NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"-+() *#"];
txt = [[txt componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];

数字格式为 B。

这是一个很好的解决方案吗?

4

2 回答 2

2

来自维基百科文章电话号码计划国家代码

国家代码 - 只有在拨打其他国家的电话时才需要。在国际使用中,电话号码的前缀是国家代码,前面有一个“+”,并用空格代替连字符(例如,“+XX YYY ZZZ ZZZZ”)。这允许读者选择他们需要从他们的位置拨打的访问代码(也称为国际拨号数字)。但是,它通常与拨号字符串中必须在其前面的国际接入代码一起引用,例如在 NANP 国家(包括加拿大、百慕大和美国)中的“011”:“011-XX-YYY-ZZZ- ZZZZ”或大多数欧洲国家/地区的“00”:“00-XX-YYY-ZZZ-ZZZZ”。这可能会导致混淆,因为阅读器所在的位置可能会使用不同的访问代码。在 GSM 网络上,“+”

看起来+不是强制性的,但如果有人拨打国际区域,它会很清楚。

于 2013-04-12T01:59:18.580 回答
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];
}
于 2013-07-19T00:47:47.040 回答