Инициировать телефонный звонок из приложения с кодом города (префикс)
В моем коде у меня есть этот фрагмент, чтобы сделать телефонный звонок с префиксом набора номера (в основном, кнопка "позвони мне"):
[[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"]];
}
}
Работает вкусно.