#iphone #cocoa-touch #xcode
#iPhone #cocoa-touch #xcode
Вопрос:
У меня есть этот код:
NSString *telURL = [NSString stringWithFormat:@"tel:1-%@",((UIButton*) sender).titleLabel.text];
telURL = [telURL stringByReplacingOccurrencesOfString:@"n" withString:@""];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telURL]];
Но оно не запускает приложение дозвона для совершения телефонного звонка.
Я проверил строку telURL, и ее содержимое таково: «tel: [ОТРЕДАКТИРОВАНО]», что, насколько я понимаю, является тем, чем оно должно быть.
Есть идеи?
РЕДАКТИРОВАТЬ: На случай, если это имеет значение, я только что запустил это на симуляторе. У меня не будет физического устройства в течение нескольких дней. (И из приведенных ниже ответов, по-видимому, это имеет значение)
Комментарии:
1. Я не думаю, что вы можете совершать телефонные звонки (без приложения phone или селектора контактов).
Ответ №1:
Вы ответили на свой собственный вопрос. Tel: URL не работает на симуляторе iPhone И iPod Touch (и iPad, конечно). Это работает ТОЛЬКО на iPhone.
Комментарии:
1. Также вы могли бы проверить номер, я думаю, вам не хватает цифры в конце. тел: 1-717-432-243
Ответ №2:
Это важно. В симуляторе нет приложения для телефона. И попытка открыть телефонный URL-адрес на устройстве (iPod touch, симулятор), на котором нет приложения, просто завершается сбоем.
Однако ваше форматирование правильное.
Ответ №3:
Сначала просто проверьте, что вы работаете на оборудовании, включающем телефон (не iPod touch), а не симулятор, верно? Симулятор не позволит вам протестировать это.
Простой способ избавиться от пробелов в вашем номере телефона — это:
NSString *phoneURLString = [[self.phoneNumber componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] componentsJoinedByString: @""];
Также вы должны программно проверять, может ли устройство (или симулятор) обрабатывать URL. Простой способ проверить это — использовать canOpenURL:
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:yourPhoneNumberStringHere]]