2015-07-09 3 views
0

Я пытаюсь позвонить по телефону WebView, но не работает.Swift сделать телефонный звонок из 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 
} 

Заранее благодарен!

ответ

2

Это непроверенный, но я думаю, что вы могли бы сделать что-то вроде:

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.

+0

Спасибо, я тестировал в эмуляторе, поскольку я был глуп! –

Смежные вопросы