2012-10-08 101 views
3

我有一種看法,單擊時應提示用戶撥打電話。我嘗試使用下面的代碼:iOS:提示用戶撥打電話

 NSString *phoneNumber = [@"tel://" stringByAppendingString:locPhone]; 
    NSString *phoneString = [phoneNumber stringByReplacingOccurrencesOfString:@" " withString:@""]; 
    phoneString= [phoneString stringByReplacingOccurrencesOfString:@"(" withString:@""]; 
    phoneString= [phoneString stringByReplacingOccurrencesOfString:@")" withString:@""]; 
    phoneString= [phoneString stringByReplacingOccurrencesOfString:@"-" withString:@""]; 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneString]]; 

我知道那是達到了代碼,而「phoneString」的終極價值是一個10位數的電話號碼。沒有錯誤,但沒有任何反應。我錯過了什麼?

編輯:我現在看到,canOpenURL返回NO。這是因爲我在模擬器上運行它?

+0

您是如何知道代碼已達到的? – aforaudrey

+0

在我看來,這應該工作,沒有問題,如果你調試,你確定它得到這些線? –

+0

你應該總是首先使用'canOpenURL'。它是否返回YES? – Felix

回答

2

您的代碼似乎正確,但請注意模擬器無法模擬電話呼叫(在模擬器上使用canOpenURL進行測試將返回NO)。

您應該在實際設備上測試您的代碼,您可能會發現它可以按預期工作。

順便說一句,您應該在應用程序中添加canOpenURL測試,並在此情況下向用戶顯示一些警告,因爲用戶可能會在iPod設備上或iPad上運行您的應用程序,而且兩者都不能執行電話。