我想在 iPhone 中拨打类似“##8004664411”的电话号码。
如果我拨打号码“8004664411”,它可以工作。但如果号码包含符号“##”,它就不起作用。
这是我正在使用但不起作用的代码:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://##8004664411"]];
转义字符错了吗?
我想在 iPhone 中拨打类似“##8004664411”的电话号码。
如果我拨打号码“8004664411”,它可以工作。但如果号码包含符号“##”,它就不起作用。
这是我正在使用但不起作用的代码:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://##8004664411"]];
转义字符错了吗?
恐怕您根本无法拨打包含 * 或 # 字符的号码。出于安全原因,Apple 似乎不允许在拨号字符串中使用它们。以下是文档的相关部分。
来自苹果的文档:
为了防止用户恶意重定向电话或更改电话或帐户的行为,电话应用程序支持 tel 方案中的大多数(但不是全部)特殊字符。具体来说,如果 URL 包含 * 或 # 字符,电话应用程序不会尝试拨打相应的电话号码。如果您的应用程序从用户或未知来源接收 URL 字符串,您还应确保正确转义任何可能不适合 URL 的特殊字符。对于本机应用程序,使用 NSString 的 stringByAddingPercentEscapesUsingEncoding: 方法来转义字符,这将返回原始字符串的正确转义版本。
注意:该stringByAddingPercentEscapesUsingEncoding:
部分不适用于 * 和 # (我已经尝试过了...)