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

Posted

技术标签:

【中文标题】iOS中的拨号真的需要确认吗?【英文标题】:Dial number in iOS really need confirmation? 【发布时间】:2011-05-09 07:12:54 【问题描述】:

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

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

【问题讨论】:

请更改接受的答案,因为第二种解决方案更简洁(例如本地化消息),我没有及时注意到它:) 【参考方案1】:

替代已发布的合适解决方案,您可以考虑使用telprompt URL 方案,例如

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

【讨论】:

+1 虽然完全没有记录,但在我的测试中,它似乎一直可以追溯到 ios 3.0。【参考方案2】:

确认不是必需的,并且在以编程方式完成时不会显示。如果单击数字,您只会在 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;
    

【讨论】:

你确定+[UIApplication sharedLibrary]方法存在吗? 应该是[UIApplication sharedApplication]【参考方案3】:

确认不是必需的,但它是可取的,因为它可以防止在用户进入拨号应用程序时产生混淆。另一个答案建议您可以做的一件事是使用 telprompt 而不是 tel。这将通过一个简单的对话框提供必要的提示。它还有一个非常好的副作用,就是在电话通话完成后将用户拉回通话应用程序。这个关键元素允许你继续前进,而不是被踢出你的应用程序。

此处提供了进一步解释此代码的类别和示例项目: http://www.raizlabs.com/dev/2014/04/getting-the-best-behavior-from-phone-call-requests-using-tel-in-an-ios-app/

【讨论】:

以上是关于iOS中的拨号真的需要确认吗?的主要内容,如果未能解决你的问题,请参考以下文章

我们真的需要在 iOS 6 上进行应用内验证吗?

ios5 facebook 应用程序 - 我真的需要 github 吗?

我真的需要在自定义 UIView 中使用 drawRect() 吗?

如何将国家拨号代码放在 intlTelInput 中的括号中

pptp客户端拨号需要联网吗

android通话没有显示拨号UI?