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
}

application.canOpenURL(phoneURL)が返されるため、これはシミュレーターでは機能しないことに注意してくださいfalse。これは、実際の iPhone でのみ機能します。

于 2015-07-09T00:43:04.427 に答える