如何在iPhone上以編程方式撥打電話?我試着下面的代碼,但什麼都沒有發生:以編程方式撥打電話
NSString *phoneNumber = mymobileNO.titleLabel.text;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
如何在iPhone上以編程方式撥打電話?我試着下面的代碼,但什麼都沒有發生:以編程方式撥打電話
NSString *phoneNumber = mymobileNO.titleLabel.text;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
也許mymobileNO.titleLabel.text值不包括方案電話://
您的代碼應該是這樣的:
NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
我們沒有機會用這種方法回到原始應用程序。 – 2011-10-30 10:58:04
我認爲梅隆的方法更好,因爲它首先提示用戶,然後在通話後返回到您的應用程序。只需確保使用canOpenURL:並回退到tel:提示符,因爲telprompt不是官方的,可以在未來的iOS版本中刪除。 – 2014-01-10 00:56:00
如何從蘋果手錶撥打電話? – 2015-11-22 07:16:02
要返回原來的應用程序,你可以使用telprompt://而不是電話:// - 在訴說提示首先會提示用戶,但是當通話結束後它會回到你的AP電話號碼:
NSString *phoneNumber = [@"telprompt://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
如果使用Xamarin開發iOS應用程序,這裏是C#相當於讓你的應用程序中的一個電話:
string phoneNumber = "1231231234";
NSUrl url = new NSUrl(string.Format(@"telprompt://{0}", phoneNumber));
UIApplication.SharedApplication.OpenUrl(url);
Java的RoboVM相當於:
public void dial(String number)
{
NSURL url = new NSURL("tel://" + number);
UIApplication.getSharedApplication().openURL(url);
}
這裏的答案是完美的。我只是將Craig Mellon的答案轉換爲Swift。如果有人來尋求迅速的答案,這將幫助他們。
var phoneNumber: String = "telprompt://".stringByAppendingString(titleLabel.text!) // titleLabel.text has the phone number.
UIApplication.sharedApplication().openURL(NSURL(string:phoneNumber)!)
合併@Cristian拉杜和@Craig梅隆,並從@ 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上撥打電話。
let phone = "tel://\("1234567890")";
let url:NSURL = NSURL(string:phone)!;
UIApplication.sharedApplication().openURL(url);
斯威夫特3
let phoneNumber: String = "tel://3124235234"
UIApplication.shared.openURL(URL(string: phoneNumber)!)
嘗試了上述斯威夫特3選擇,但它沒有工作。我認爲你需要下面的,如果你是對的iOS 10+斯威夫特上運行3:
斯威夫特3(iOS版10+):
let phoneNumber = mymobileNO.titleLabel.text
UIApplication.shared.open(URL(string: phoneNumber)!, options: [:], completionHandler: nil)
在雨燕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")
}
}
在swift中的代碼,你可以按照這個答案 http://stackoverflow.com/a/29869456/3950397 – 2015-04-27 10:36:34