Swift canOpenURL() 错误 iOS9 隐私问题电话 ://and telprompt://

标签 swift ios9

    @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/

相关文章:

Swift:你如何理解这个函数签名: func curry<A, B, C>(f: (A, B) -> C) -> A -> B -> C

swift - 同时观察两个数据源

video - 使用 swift 2 IOS 9 播放视频

swift - 如何在 Swift 和 iOS 9 中实现 iAd Preroll Video?

ios - 重构的 Storyboard无法编译 XCode7

ios - 尝试启动 TunnelProvider 网络扩展时出现 NEVPNErrorDomain 错误 1

Swift - 自动布局 - UIView - 内部尺寸混淆

swift - 如何使用 Alamofire + RxSwift 同步刷新访问 token

ios - 调试 (MetalScen) SceneKit EXC_BAD_ACCESS

iOS:使用凭据快速创建结构