以编程方式拨打电话
如何在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") } }