如何以编程方式拨打iPhone的USSD代码?
我搜索并发现,iOS 7
已经出于安全原因封锁了使用USSD
代码,在iOS 7以下的 iPhone 上我们可以手动拨打USSD代码,但不可以以编程方式拨打。
有没有任何想法,我们是否可以像这样以编程方式调用USSD:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:\*123* <2334555>#"]]
?
如何以编程方式拨打iPhone的USSD代码?
我搜索并发现,iOS 7
已经出于安全原因封锁了使用USSD
代码,在iOS 7以下的 iPhone 上我们可以手动拨打USSD代码,但不可以以编程方式拨打。
有没有任何想法,我们是否可以像这样以编程方式调用USSD:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:\*123* <2334555>#"]]
?
包含 * 或 # 字符的号码无法拨打。出于安全原因,苹果不允许在拨号字符串中使用它们。
Apple 文档中写道:
为了防止用户恶意重定向电话或更改电话或帐户的行为,电话应用程序支持大多数但不是所有特殊字符的 tel 协议。具体来说,如果 URL 包含 * 或 # 字符,则电话应用程序不会尝试拨打相应的电话号码。如果您的应用程序从用户或未知来源接收 URL 字符串,还应确保适当转义任何可能不适合 URL 的特殊字符。对于原生应用程序,请使用 NSString 的 stringByAddingPercentEscapesUsingEncoding: 方法来转义字符,该方法返回有效转义的原始字符串版本。
不可以使用openURL
来编程拨打USSD代码。这样做会返回NO
。