Пользовательское приложение не запускается для совершения телефонного звонка

#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]]