按下按钮时如何打开拨打/拨号号码视图?

Posted

技术标签:

【中文标题】按下按钮时如何打开拨打/拨号号码视图?【英文标题】:how to open call making /dialing numer view open when button press? 【发布时间】:2011-07-09 09:07:23 【问题描述】:
enter code here-(IBAction)Call:(id)sender
//[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://18005551234"]];
/*NSString *phoneStr = [[NSString alloc] initWithFormat:@"tel:%@",phoneNumber.text];
NSURL *phoneURL = [[NSURL alloc] initWithString:phoneStr];
[[UIApplication sharedApplication] openURL:phoneURL];
[phoneURL release];
[phoneStr release];*/
NSURL *url = [ [ NSURL alloc ] initWithString: @"tel:212-555-1234" ];
[[UIApplication sharedApplication] openURL:url]; 

在上面的代码中,我使用了各种方法,但没有人工作。当我在函数上实现断点时,它说这超出了范围。这有什么问题?

【问题讨论】:

【参考方案1】:

您应该删除电话号码中的连字符“-”以及括号“(”、“)”。除数字外,不应有特殊字符。

NSCharacterSet *specialCharSet = [NSCharacterSet characterSetWithCharactersInString:@" )(-,"];
NSArray *components = [phoneNumber.text componentsSeparatedByCharactersInSet:specialCharSet];
NSString *phoneStr = [components componentsJoinedByString:@""];
phoneStr = [NSString stringWithFormat:@"tel:%@", phoneStr];
NSURL *url = [[NSURL alloc] initWithString:phoneStr];
[[UIApplication sharedApplication] openURL:url]; 

【讨论】:

您可以根据需要使用任何方法。如果手机号码是动态的,您可以将其保存在单独的变量中并使用 stringWithFormat: 方法附加它。 哪个更好?在模拟器中任何一项工作。请编写正在使用的那一行代码。 谢谢 Jim Thio,我现在已经添加了 ;-)

以上是关于按下按钮时如何打开拨打/拨号号码视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在android Pie及更高版本中以编程方式通过拨号器拨打电话

在 iOS 中有一个自定义数字键盘来拨打号码

android中拨打电话的几种实现

如何查询手机号码的归属地?

安卓手机怎么设置重复拨打电话

Android拨打电话