如何用“##”拨打电话号码?

时间:2012-05-29 08:19:32

标签: iphone

我想在iPhone中拨打“## 8004664411”等电话号码。

如果我拨打号码“8004664411”,它就会起作用。但如果号码包含符号“##”,则它不起作用。

以下是我正在使用的代码无效:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://##8004664411"]];

转义字符错了吗?

1 个答案:

答案 0 :(得分:1)

我担心您根本无法拨打包含*或#字符的号码。出于安全原因,Apple似乎不允许它们使用拨号字符串。以下是文档的相关部分。

来自Apple的documentation

  

防止用户恶意重定向电话或更改   电话应用程序支持的电话或帐户的行为   tel方案中的大多数但不是全部的特殊字符。   具体来说,如果URL包含*或#字符,则为Phone   应用程序不会尝试拨打相应的电话号码。   如果您的应用程序收到来自用户或未知的URL字符串   来源,你还应该确保任何特殊字符   可能不适合在URL中正确转义。对于本地人   应用程序,使用stringByAddingPercentEscapesUsingEncoding:   NSString转义字符的方法,它返回一个正确的   转义原始字符串的版本。

注意: stringByAddingPercentEscapesUsingEncoding:部分不适用于*和#(我已尝试过是......)