以编程方式拨打电话

如何在iPhone上编程拨打电话? 我试了下面的代码,但没有发生任何事情

NSString *phoneNumber = mymobileNO.titleLabel.text; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]]; 

可能mymobileNO.titleLabel.text值不包括该schemetel://

你的代码应该是这样的:

 NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNO.titleLabel.text]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]]; 

要回到原来的应用程序,您可以使用telprompt://而不是tel:// – 告诉提示将首先提示用户,但是当通话结束后,它将返回到您的应用程序:

 NSString *phoneNumber = [@"telprompt://" stringByAppendingString:mymobileNO.titleLabel.text]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]]; 

合并@Cristian Radu和@Craig Mellon的答案以及@ joel.d的评论,你应该这样做:

 NSString *phoneNumber = mymobileNO.titleLabel.text; NSURL *phoneUrl = [NSURL URLWithString:[@"telprompt://" stringByAppendingString:phoneNumber]]; NSURL *phoneFallbackUrl = [NSURL URLWithString:[@"tel://" stringByAppendingString:phoneNumber]]; if ([UIApplication.sharedApplication canOpenURL:phoneUrl]) { [UIApplication.sharedApplication openURL:phoneUrl]; } else if ([UIApplication.sharedApplication canOpenURL:phoneFallbackUrl]) { [UIApplication.sharedApplication openURL:phoneFallbackUrl]; } else { // Show an error message: Your device can not do phone calls. } 

这将首先尝试使用“telprompt://”URL,如果失败,它将使用“tel://”URL。 如果两者均失败,则尝试在iPad或iPod Touch上拨打电话。

如果你使用Xamarin来开发一个iOS应用程序,下面是C#等价于在你的应用程序中打一个电话:

 string phoneNumber = "1231231234"; NSUrl url = new NSUrl(string.Format(@"telprompt://{0}", phoneNumber)); UIApplication.SharedApplication.OpenUrl(url); 

这里的答案是完美的工作。 我只是将Craig Mellon的答案转换成Swift。 如果有人来快速回答,这将有助于他们。

  var phoneNumber: String = "telprompt://".stringByAppendingString(titleLabel.text!) // titleLabel.text has the phone number. UIApplication.sharedApplication().openURL(NSURL(string:phoneNumber)!) 

Java RoboVM等价物:

 public void dial(String number) { NSURL url = new NSURL("tel://" + number); UIApplication.getSharedApplication().openURL(url); } 

试过上面的Swift 3选项,但它没有工作。 如果你想在Swift 3上运行iOS 10+,我认为你需要以下内容:

Swift 3(iOS 10+):

 let phoneNumber = mymobileNO.titleLabel.text UIApplication.shared.open(URL(string: phoneNumber)!, options: [:], completionHandler: nil) 
 let phone = "tel://\("1234567890")"; let url:NSURL = NSURL(string:phone)!; UIApplication.sharedApplication().openURL(url); 

Swift 3

 let phoneNumber: String = "tel://3124235234" UIApplication.shared.openURL(URL(string: phoneNumber)!) 

在Swift 3.0中,

 static func callToNumber(number:String) { let phoneFallback = "telprompt://\(number)" let fallbackURl = URL(string:phoneFallback)! let phone = "tel://\(number)" let url = URL(string:phone)! let shared = UIApplication.shared if(shared.canOpenURL(fallbackURl)){ shared.openURL(fallbackURl) }else if (shared.canOpenURL(url)){ shared.openURL(url) }else{ print("unable to open url for call") } }