0

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

关于如何做到这一点的任何想法或教程?

4

4 回答 4

7

您可以使用以下线路轻松拨打电话:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:12125551212"]];
于 2012-08-31T16:49:06.477 回答
0

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

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

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

因此,您需要去掉所有空格,然后让电话应用程序拨打号码,此时它会在显示电话号码时将自己的空格添加回电话号码!

这是我使用的代码(电话号码当前显示在UILabel被调用的 lblPhone 中):

 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 上运行该应用程序。如果您是,那么我们不想尝试拨打该号码。

此外,正如该线程上的答案所暗示的那样,您会看到我使用过 telprompt:而不是tel: 它有两个优点:

首先,它会出现一个小对话框,以检查用户是否真的想拨打该电话号码:

好的

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

(使用 XCode 5 和 iOS 7.1 测试)

于 2014-04-24T09:44:19.060 回答
0

您不能只打开电话应用程序来手动输入号码。正如之前建议的那样,您可以从您的应用程序拨打电话,这将打开默认的电话呼叫屏幕,一旦您完成该呼叫,它将重定向回您的应用程序。

于 2012-08-31T18:33:55.840 回答
-3
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:<You button title as phone number>"]];
于 2012-08-31T17:43:14.577 回答