@IBAction func callfriendbutton(sender: AnyObject) {
let phoneNumberstring = NSUserDefaults.standardUserDefaults().stringForKey("phoneNum");
var escapednum: String = phoneNumberstring!.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
let urlString = "telprompt://\(escapednum)";
let url = NSURL(string: urlString);
if UIApplication.sharedApplication().canOpenURL(url!) {
UIApplication.sharedApplication().openURL(url!);
}
}
我尝试了所有方法,但仍然不起作用,我还添加到我的 info.plist 中,允许 tel 和 telprompt 工作,但这是我得到的错误
2016-03-27 03:18:24.013 TACTAC[64525:4775035] -canOpenURL: URL 失败:“telprompt://1234567891” - 错误:“(null)”
最佳答案
为什么需要添加stringByAddingPercentEscapesUsingEncoding
,这通常在Web URL中使用
如果以下代码适合您,您可以尝试一下
let strCallNo: String = "1234567891"
let trimmedString = strCallNo.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
let telUrl:NSURL? = NSURL(string:trimmedString)
if ((telUrl) != nil){
if(UIApplication.sharedApplication().canOpenURL(telUrl!)){
UIApplication.sharedApplication().openURL(NSURL(string: "telprompt://"+strCallNo)!)
}else
{
print("Call not available")
}
}
关于Swift canOpenURL() 错误 iOS9 隐私问题电话 ://and telprompt://,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36244849/