iOS app开发:如何解决拨打电话的特殊字符(如*和#)?用于呼叫转移


普通的拨打电话如下:
NSString *strForCallHZ = @"tel:10086";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:strForCallHZ]];

但是我要设置“取消呼叫转移”,需要拨打“##21#”。

第一次尝试:直接类比于普通电话。
NSString *strForCallHZ = @"tel:##21#";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:strForCallHZ]];
结果:报错:
LaunchServices: ERROR: There is no registered handler for URL scheme (null)

第二次尝试:加一个编码过程。
NSString *strForCallHZ = @"tel:##21#";
strForCallHZ = [strForCallHZ stringByAddingPercentEscapesUsingEncoding:


 NSUTF8StringEncoding];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:strForCallHZ]];
结果:报错:
LaunchServices: ERROR: There is no registered handler for URL scheme (null)

请问:应该如何解决这种特殊字符的电话拨打问题呢?

移动app ios

zeromax 9 years, 5 months ago

 NSURL *url = [NSURL URLWithString:@"tel:%23%2321%23"];

试试?

eggpain answered 9 years, 5 months ago

Your Answer