我使用以下代码拨打号码并使用我的设备进行测试。似乎不需要确认,对吗?
NSURL *url = [NSURL URLWithString:@"tel://12345678"];
[[UIApplication sharedApplication] openURL:url];
答案 0 :(得分:18)
已发布的合适解决方案的替代方案,您可以考虑使用telprompt
网址方案,例如
NSURL *url = [NSURL URLWithString@"telprompt://12345678"];
[[UIApplication sharedApplication] openURL:url];
答案 1 :(得分:14)
确认不是必需的,并且在以编程方式完成时不会显示。如果单击某个数字,您将只在Safari中看到alertView。
然而,根据我自己的经验,我认为客户看到一个对话框更方便,所以他们不会不小心打电话给某人。人们只是在应用程序中点击内容,甚至没有思考,在这种情况下可能会很糟糕。
模仿safari你可以做这样的事情:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Call 12345678?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Call", nil];
[alert show];
alert.tag = 1;
[alert release];
和
-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
switch (alertView.tag) {
case 1:
if (buttonIndex == 1) {
NSURL *url = [NSURL URLWithString:@"tel://12345678"];
[[UIApplication sharedApplication] openURL:url];
}
break;
default:
break;
}
}
答案 2 :(得分:0)
确认不是必需的,但它是可取的,因为它可以防止用户被放入拨号应用程序时产生混淆。另一个答案建议你可以做的一件事是使用telprompt而不是tel。这将通过简单的对话框提供必要的提示。它还具有非常好的副作用,即在电话呼叫完成后将用户放回呼叫应用程序。这个关键元素允许您继续前进,而不是被踢出您的应用程序。
此处提供了进一步解释此代码和示例项目的类别: http://www.raizlabs.com/dev/2014/04/getting-the-best-behavior-from-phone-call-requests-using-tel-in-an-ios-app/