从编程方式拨号USSD代码

如何以编程方式拨打iphone的USSD代码?

我search了一下,发现iOS 7已经为了安全原因而阻止了USSD代码的使用,而在iOS7中我们可以通过手动方式拨打USSD代码。

任何人都有一个想法,我们可以通过编程方式调用USSD:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:\*123* <2334555>#"]]

您不能拨打包含*或#字符的号码。 出于安全原因,Apple不允许他们使用拨号string。

苹果文档说 :

为防止用户恶意redirect电话或更改电话或帐户的行为,电话应用程序支持telscheme中的大部分(但不是全部)特殊字符。 具体而言,如果URL包含*或#字符,则电话应用程序不会尝试拨打相应的电话号码。 如果您的应用程序收到来自用户或未知来源的URLstring,则还应确保在URL中可能不适合的任何特殊字符能够正确转义。 对于本机应用程序,请使用NSString的stringByAddingPercentEscapesUsingEncoding:方法转义字符,这会返回原始string的正确转义版本。

不,您不能使用openURL以编程方式拨打USSD代码。 这样做会返回NO