2015-11-05 44 views
2

這是我的代碼打個電話什麼是錯誤的,我的功能來撥打電話

let phoneCall = phoneNumberTF.text 
     if let phoneCall = phoneCall { 
      let url = NSURL(string: "tel://\(phoneCall)") 
      UIApplication.sharedApplication().openURL(url!) 

     }else { 
      let alert = UIAlertController(title: "Error", message: "not correct phone", preferredStyle: .Alert) 
      let action = UIAlertAction(title: "Retry", style: .Default, handler: nil) 
      alert.addAction(action) 
     } 

我得到這個錯誤日誌中

ERROR: There is no registered handler for URL scheme tel 

暗示:我已經檢查這個問題,但解決方案並沒有跟我 Calling a phone number in swift

+0

您是在真實設備上測試嗎?您無法在模擬器中撥打電話。 – rmaddy

+0

順便說一句 - 你應該檢查'openURL'的結果。 – rmaddy

+0

@rmaddy哦,我真的不能打開打電話的控制器? –

回答

2

工作正確的URL方案是一樣的東西 tel:PHONE_NUMBER(不包括你的斜槓)。你也應該檢查應用程序可以通過調用UIApplication.sharedApplication.canOpenURL()打開您提供的網址...

let phoneNumber = "123-456-789" 
let phoneURL = NSURL(string: "tel:\(phoneNumber)")! 
if UIApplication.sharedApplication().canOpenURL(phoneURL) { 
    UIApplication.sharedApplication().openURL(phoneURL) 
} 
+0

有沒有參考? ? –

+0

sure:https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html#//apple_ref/doc/uid/TP40007899-CH6-SW1 –

+0

我得到了同樣的錯誤信息 –

1

每蘋果文檔https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html

的正確格式爲tel:。所以首先改變它,然後你應該在做之前檢查UIApplication.sharedApplication.canOpenURL()。如果你在模擬器上運行,它將無法工作。

+0

測試,我可以安裝應用程序製作仿真器上的電話? –

+0

@MarcoDinatsoli不,你將需要一個真正的設備上運行此。 –

+0

感謝您的希望,加上一個 –