8

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

我搜索并发现出于安全原因iOS 7已经阻止了USSD代码的使用,并且在具有 < iOS7 的 iPhone 中,我们可以手动拨打 USSD 代码,但不能以编程方式拨打。

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

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

4

2 回答 2

13

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

苹果文档说

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

于 2013-10-25T12:49:06.340 回答
0

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

于 2013-10-25T12:15:05.003 回答