Инициировать телефонный звонок из приложения с кодом города (префикс)

В моем коде у меня есть этот фрагмент, чтобы сделать телефонный звонок с префиксом набора номера (в основном, кнопка "позвони мне"):

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

Интересно, будет ли iPhone скрывать префикс набора, когда он не нужен (?).

Спасибо,

2 ответа

Второй ответ на мой собственный вопрос:

согласно этому посту, мобильный код страны не меняется при роуминге: меняется ли CTCarrier mobileNetworkCode при роуминге?

Поэтому лучший способ:

{

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"]];
        }
}
}

Работает нормально тоже.

Для тех, кто заинтересован, я нашел простой способ, используя 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"]];
    }
}

Работает вкусно.

Другие вопросы по тегам