拨打Xcode中的电话号码

时间:2012-08-31 16:47:39

标签: iphone ios4 xcode4.3

您好我希望用户点击按钮,该按钮将打开实际的iPhone手机应用程序。

有关如何执行此操作的任何想法或教程?

4 个答案:

答案 0 :(得分:7)

您可以使用以下一行轻松拨打电话:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:12125551212"]];

答案 1 :(得分:0)

您无法打开手机应用程序手动输入数字。如前所述,您可以从应用程序发出呼叫,这将打开默认的电话呼叫屏幕,一旦您完成该呼叫,它将重定向回您的应用程序。

答案 2 :(得分:0)

只需添加(不再复制并再次粘贴相同的答案!)如果您的电话号码包含任何空格,那么这行代码将无声地失败。

即使手机应用 表示拨打+41 44 123 4567,如果您尝试在代码中使用以下行,也不会发生任何事情。它不会将此识别为电话号码。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:+41 44 123 4567"]];

所以,你需要删除任何空格,然后让手机应用程序拨打该号码,此时它会在显示它时将它自己的空格添加回电话号码! !

以下是我使用的代码(电话号码当前显示在名为lblPhone的UILabel中):

 NSString* phoneNumber = [self.lblPhone.text stringByReplacingOccurrencesOfString:@" " withString:@""];

 NSString* actionStr = [NSString stringWithFormat:@"telprompt:%@", phoneNumber];

 UIDevice *device = [UIDevice currentDevice];
 if ([[device model] isEqualToString:@"iPhone"] ) {
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:actionStr]];
 } 

此代码还会检查您是否在iPad上运行该应用。如果您是,那么我们不想尝试拨号。

此外,正如this主题中的答案所示,您会看到我使用telprompt:而不是tel:它有两个好处:

首先,它会显示一个小对话框,以检查用户是否真的希望拨打该电话号码:

Nice

其次,当用户完成拨打此号码(并挂机)时,它会将您返回到您的应用中。奇怪的是,使用tel:不会这样做。

(使用XCode 5和iOS 7.1测试)

答案 3 :(得分:-3)

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:<You button title as phone number>"]];