【问题标题】:Sending # & * in tel: URIs in iOS 5+在 tel 中发送 # & *:iOS 5+ 中的 URI
【发布时间】:2012-08-05 23:44:52
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios openurl


    【解决方案1】:

    由 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#。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 非常有用!但我有这个问题:[NSURL URLWithString:@"tel:08001111111,0111312#,,,,9154#"]; -> 工作 [NSURL URLWithString:@"tel:08001111111,0111312#,,,,9154#,1"]; -> 没有任何想法?
      猜你喜欢
      • 2015-04-18
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 2017-02-05
      • 2016-04-28
      • 1970-01-01
      • 2011-12-08
      相关资源
      最近更新 更多