使用区号(前缀)从应用程序发起电话呼叫

时间:2014-08-15 07:20:26

标签: ios prefix dialing

在我的代码中,我有这个代码片段用拨号前缀拨打电话(基本上是"给我打电话"按钮):

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://+0000000000"]];
if(SYSTEM_VERSION_LESS_THAN(@"7.0")) {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:+0000000000"]];
}

我想知道iPhone是否会在没必要的情况下隐藏拨号前缀(?)。

谢谢,

2 个答案:

答案 0 :(得分:0)

对于那些感兴趣的人,我找到了一种简单的方法,使用NSLocale currentLocale

// Get the current locale.
NSLocale *currentLocale = [NSLocale currentLocale];
// Get country code, e.g. ES (Spain), FR (France), etc.
NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode];

if ([countryCode isEqualToString:@"FR"]){
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://0000000000"]];
}
else {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://+33000000000"]];
}

if(SYSTEM_VERSION_LESS_THAN(@"7.0")) {
    if ([countryCode isEqualToString:@"FR"]){
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://0000000000"]];
    }
    else {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:+ 33000000000"]];
    }
}

美味可口。

答案 1 :(得分:0)

对我自己的问题的第二个回答:

根据这篇文章,漫游时移动国家/地区代码不会改变:Does CTCarrier mobileNetworkCode change when roaming?

因此,最佳方式是:

{

CTTelephonyNetworkInfo *info = [CTTelephonyNetworkInfo new];

CTCarrier *carrier = info.subscriberCellularProvider;

NSLog(@"country code is: %@", carrier.mobileCountryCode);
// Get mobile network code



if ([carrier.mobileCountryCode isEqualToString:@"208"]){
    [[UIApplication sharedApplication]
     openURL:[NSURL URLWithString:@"telprompt://0000000000"]];
}

   else {
    [[UIApplication sharedApplication]
     openURL:[NSURL URLWithString:@"telprompt://+33000000000"]];
}


    if(SYSTEM_VERSION_LESS_THAN(@"7.0")) {
        if ([carrier.mobileCountryCode isEqualToString:@"208"]){
            [[UIApplication sharedApplication]
             openURL:[NSURL URLWithString:@"tel://0000000000"]];
        }
        else {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:+33000000000"]];
        }
}
}

也可以。