[英]URL with string tel://*#06# is returning nil in Swift
我在Swift 4.x中使用以下代码:
let url = URL(string: "tel://*#06#")
这使url为nil。 只是这个特定的数字有一些问题。 谁能告诉我如何解决这个问题,以及为什么这首先是一个问题。
根据此处的苹果文档:
为防止用户恶意重定向电话或更改电话或帐户的行为,“电话”应用程序支持tel方案中的大多数(但不是全部)特殊字符。 具体来说, 如果URL包含*或#字符,则“电话”应用程序不会尝试拨打相应的电话号码。
请注意,对于其他字符,可以使用addingPercentEncoding
方法对特殊字符进行转义,这将返回原始字符串的正确转义版本。
例:
let encoding = phoneNumberString.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
正如@Ketan Ordera所建议的那样,即使在使用URLEncoding扩展了URL之后,也无法在iOS中运行USSD代码。
要拨打电话,请使用下一个功能:
static func callPhone (phone:String){
guard let number = URL(string: "telprompt://" + phone) else { return }
UIApplication.shared.open(number)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.