На этот вопрос много ответов, но на iOS 9 есть некоторые проблемы. Когда я использую этот код:набирая iPhone на iOS9
NSString *phoneNumber = [@"telprompt://" stringByAppendingString:self.lblPhone.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
Я получил эту ошибку:
LaunchServices: ERROR: There is no registered handler for URL scheme (null)
Тогда я изменить info.plist с этим:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>telprompt</string>
<string>tel</string>
</array>
Но ничего не изменилось!
Так что я попробовал второй код, и это работает:
NSString *numberString = @"004986632461";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"telprompt://%@",numberString]]];
Но это не:
NSString *numberString = [NSString stringWithFormat:@"%f", [[_lblPhone text] floatValue]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"telprompt://%@",numberString]]];
Это набор, но номер не так. Есть идеи?
Вместо использования составных операторов разделять их с помощью промежуточных переменных, чтобы вы могли легче отлаживать, что упростит понимание кода и проблемы. В этом случае с 'NSURL * telURL = [NSURL URLWithString: phoneNumber];' вы легко увидите, что URL-адрес и сможете сосредоточиться на решении. – zaph
Почему вы пытаетесь обрабатывать номер телефона как значение «float»? Номера телефонов - это строки, а не номера. – rmaddy
Что такое phoneNumber & numberString, NSLog их всех и добавить, что yo y question – zaph