簡體   English   中英

字符串為tel:// *#06#的URL在Swift中返回nil

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM