2011-04-12 38 views
1

我有這樣的代碼:UIApplication的不發動,使電話

NSString *telURL = [NSString stringWithFormat:@"tel:1-%@",((UIButton*) sender).titleLabel.text]; 
telURL = [telURL stringByReplacingOccurrencesOfString:@"\n" withString:@""]; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telURL]]; 

但不啓動撥號器應用程序打個電話。

我檢查過字符串telURL,它的內容是:「tel:[刪除]」,這對我的理解是它的需要。

任何想法?

編輯: 如果它很重要我剛剛在模擬器上運行它。幾天後我將沒有物理設備。 (從下面的答案顯然它確實很重要)

+2

我不認爲你可以打電話(沒有電話應用程序或聯繫人選擇器)。 – alexy13 2011-04-12 19:51:19

回答

10

你回答了你自己的問題。 tel:URL不適用於iPhone模擬器和iPod Touch(當然還有iPad)。它只適用於iPhone。

+1

你也可以檢查號碼,我認爲你最後錯過了一個數字。聯繫電話:1-717-432-243 – NWCoder 2011-04-12 20:59:10

1

首先,只是檢查你是否在包含手機(不是iPod touch)而不是模擬器的硬件上運行?模擬器不會讓你測試這個。

一個簡單的方法在你的電話號碼改掉空白的是:

NSString *phoneURLString = [[self.phoneNumber componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] componentsJoinedByString: @""]; 

你也應該通過編程來檢查,如果設備(或仿真器)可以處理的URL。檢查簡單的方法是使用canOpenURL:

[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:yourPhoneNumberStringHere]] 
2

這一點很重要。模擬器中沒有電話應用程序。並試圖在沒有該應用的設備(iPod touch,模擬器)上打開電話URL,只是默默地失敗。

雖然您的格式正確無誤。