iOS中的拨号号码真的需要确认吗?

时间:2011-05-09 07:12:55

标签: iphone objective-c cocoa-touch ios ios4

我使用以下代码拨打号码并使用我的设备进行测试。似乎不需要确认,对吗?

NSURL *url = [NSURL URLWithString:@"tel://12345678"];
[[UIApplication sharedApplication] openURL:url];

3 个答案:

答案 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/