0

我正在尝试通过单击拨打电话WebView但不起作用。

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {

    if navigationType == UIWebViewNavigationType.LinkClicked {

        if (request.URL?.absoluteString!.rangeOfString("tel://") != nil) {

            var phone : String = request.URL!.absoluteString!

            println(phone)

            var url:NSURL? = NSURL(string: phone)
            UIApplication.sharedApplication().openURL(url!)

            return false

        } else {

            return true

        }
    }

    return true
}

提前致谢!

4

1 回答 1

3

这是未经测试的,但我认为您可以执行以下操作:

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    if navigationType == UIWebViewNavigationType.LinkClicked {
        let application = UIApplication.sharedApplication()
        if let phoneURL = request.URL where (phoneURL.absoluteString!.rangeOfString("tel://") != nil) {
            if application.canOpenURL(phoneURL) {
                application.openURL(phoneURL)
                return false
            }
        }
    } 
    return true
}

您应该注意,这在 Simulator 上不起作用,因为application.canOpenURL(phoneURL)return false。这仅适用于实际的 iPhone。

于 2015-07-09T00:43:04.427 回答