2013-10-25 140 views
8

如何撥打USSD代碼爲iphone編程?從iphone撥號USSD代碼

我搜索,發現iOS 7已封鎖的安全原因USSD代碼中使用,並與< iOS7的iPhone,我們可以manualy而不是編程方式撥打USSD代碼。

任何一個有一個想法,我們可以調用編程USSD像:

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

+1

爲了將來的參考,啓動Xcode並測試一行代碼而不是在這裏詢問會更快。 – neilco

回答

11

您不能撥打包含*或#字符的號碼。出於安全原因,Apple不允許他們使用撥號字符串。

Apple Documentation says

爲了防止用戶惡意重定向的電話或改變 電話或賬戶的行爲,將手機應用程序支持最大,但 沒有,所有的電話計劃中的特殊字符。具體來說,如果 URL包含*或#字符,則電話應用程序不會嘗試 撥打相應的電話號碼。如果您的應用收到來自用戶的URL 字符串或未知來源,則還應確保 任何可能不適合URL的特殊字符都是 正確轉義。對於原生應用程序,請使用 stringByAddingPercentEscapesUsingEncoding:NSString的方法爲 轉義字符,這會返回 原始字符串的正確轉義版本。

0

不,您不能使用openURL以編程方式撥打USSD代碼。這樣做會返回NO