如何使用电话:与*(星号,星号)或#(哈希,磅)在iOS?

我试图用iPhone中的telurl发起一个电话。 它正确地调出呼叫对话框,但是当你点击呼叫时会退回到Safari浏览器。

 <a href="tel:123*12">Test</a> 

苹果的文档应该是有帮助的:

为防止用户恶意redirect电话或更改电话或帐户的行为,电话应用程序支持telscheme中的大部分(但不是全部)特殊字符。 具体而言,如果URL包含*或#字符,则电话应用程序不会尝试拨打相应的电话号码。

至less已经被认可的答案是不正确的。 我已经testing了这两个网页和应用程序能够使用特殊字符#*拨号。 如果你希望在这两个实例中使用这些字符,你必须做的是编码它们。

在HTML中, #变成%23*不需要转义

如果使用Swift,你可以编码你的链接,并使用这个function从应用程序按下它:

 //number format example (commas are pauses): 123-456-7890,,555#,1234 fileprivate func callNumber(_ number: String) { let dialString = "telprompt://" + number if let escapedDialString = dialString.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) { if let dialURL = URL(string: escapedDialString) { UIApplication.shared.openURL(dialURL) } } } 

iOS11现在允许我们用*#


Swift示例代码

  let number = "*111*12345#" let app = UIApplication.shared if let encoded = number.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) { let u = "tel://\(encoded)" if let url = URL(string:u) { if app.canOpenURL(url) { app.open(url, options: [:], completionHandler: { (finished) in }) return } } } 
Interesting Posts