您好我希望用户点击按钮,该按钮将打开实际的iPhone手机应用程序。
有关如何执行此操作的任何想法或教程?
答案 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:
它有两个好处:
首先,它会显示一个小对话框,以检查用户是否真的希望拨打该电话号码:
其次,当用户完成拨打此号码(并挂机)时,它会将您返回到您的应用中。奇怪的是,使用tel:
不会这样做。
(使用XCode 5和iOS 7.1测试)
答案 3 :(得分:-3)
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:<You button title as phone number>"]];