3

就在最近,我们注意到在 iOS 5.1 中现在允许使用包含 # 或 * 字符的 tel: URI 调用 [[UIApplication sharedApplication] openURL:url]。

例如 NSURL *url = [NSURL URLWithString:@"tel:15555551212,,1234#"];

文档似乎没有更新以表明现在允许这样做。它在 iOS 4.x 中仍然不起作用。我们正在测试看看何时发生了变化。有谁知道 Apple 是否正式更改了从应用程序中拨出这些字符的政策?

4

2 回答 2

4

更改似乎允许在or#之后,即在呼叫连接后发送 DTMF。等待几秒钟,让用户决定何时发送它,例如“拨 123”按钮。假设通过呼叫发送 DTMF 被认为是安全的,因为它不会被解释为服务/USSD/etc 代码。*,;,;

根据运营商的不同,仍有可能将其用于恶意目的,但这取决于用户在完成有效负载之前不结束呼叫(例如,如果您知道正确的号码,您可以删除一些语音邮件)。

于 2012-10-02T17:59:05.910 回答
0

由 tc. 描述的变化。真的发生了。同时,我们将 DTMF tel 的结尾限制为“+”,这会导致 DTMF 故障
所以,像 tel://1234567,12345+ 这样的 url 在 iPhone 5 上不起作用,但在 iPhone4(s) 上也可以使用使用 ios6
工作电话 url 代码:

NSString * baseTel = @"12345";
NSString * ext = @"54321";
NSString * telStr = [NSString StringWithFormat:@"tel://%@,%@#",$baseTel,$ext];
NSURL * theUrl = [NSURL URLWithString:[telStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

这将呼叫 12345 并在线路应答后播放 DTMF 54321#。

于 2013-04-19T15:00:13.297 回答