Сделать звонок из моего приложения для iPhone

Я реализовал возможность сделать звонок, нажав на строку описательного табличного представления моего отеля; Я использовал схему URL, написав следующий код в методе «didSelectRowAtIndexPath»:

NSString *phoneNumber=element.phone;                                       
[NSString *phoneNumberScheme = [NSString stringWithFormat:@"tel:%@ ", phoneNumber];
NSlog(phoneNumberScheme);                      
phoneNumberScheme = [phoneNumberScheme stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumberScheme]];

Нет ошибки! С помощью NSlog я убедился, что номер был прочитан правильно, и это так (действительно, в консоли появляется тел: 1-408-555-5555). Проблема в том, что ничего не происходит!!!

На данный момент (также основываясь на том, что я прочитал в Интернете) у меня есть сомнения, что я не могу протестировать эту штуку на симуляторе! Я что-то не так делаю или я не могу протестировать эту "схему URL" на симуляторе?!


person Claudio    schedule 19.07.2010    source источник
comment
У вас есть пробел в конце @"tel:%@ ". [@"tel:" stringByAppendingString:phoneNumber] также несколько чище.   -  person tc.    schedule 19.07.2010
comment
В чем разница между моим и вашим синтаксисом? Спасибо   -  person Claudio    schedule 20.07.2010


Ответы (3)


Чтобы расширить ответ seanny94: симулятор не поддерживает множество схем URL-адресов iOS, в том числе для приложений «Телефон», «Карты», «Youtube» и «SMS». Это также относится к таким устройствам, как iPod touch и iPad, у которых нет функций телефона; прежде чем использовать любую схему URL-адресов через -openURL:, вы должны проверить поддержку этой схемы с помощью -canOpenURL:, которая вернет YES или NO в зависимости от того, поддерживает ли текущее устройство используемую вами схему URL-адресов.

person Noah Witherspoon    schedule 19.07.2010

Вы не можете протестировать телефонный звонок (или любую функцию телефона, если уж на то пошло) в Симуляторе. Для него нет поддержки.

person esqew    schedule 19.07.2010

Попробуйте этот полезный код

Удалите пробелы для вашего кода

NSString *trimmedString = [yourNumberString stringByReplacingOccurrencesOfString:@" " withString:@""];

Код для звонка после подтверждения

NSString *phoneNumber = [@"telprompt://" stringByAppendingString:trimmedString];

Код для прямого звонка

NSString *phoneNumber = [@"tel://" stringByAppendingString:trimmedString];
NSLog(@"Number : %@",phoneNumber);
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
person Hemant Singh Rathore    schedule 17.09.2013