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中的拨号真的需要确认吗?的主要内容,如果未能解决你的问题,请参考以下文章
ios5 facebook 应用程序 - 我真的需要 github 吗?
我真的需要在自定义 UIView 中使用 drawRect() 吗?