2017-11-07 191 views
5

4 numaralı xcode 9.1'im var ve webview kullanarak kimlik doğrulaması yapamıyorum. Burada ben günlüğüne alıyorum hata olduğunuNSURLSession/NSURLConnection HTTP yükü başarısız oldu Swift 4

import UIKit 

protocol AuthViewControllerDelegate{ 
    func getAccessToken(_ code: String) 
} 

class AuthViewController: UIViewController, NSURLConnectionDelegate { 


    @IBOutlet weak var navItem: UINavigationItem! 
    @IBOutlet weak var webView: UIWebView! 

    var delegate: AuthViewControllerDelegate? 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     var link: "https://home.nest.com/login/oauth2?client_id=…" 

     if let encodeURL = link.URLEncodedString(), let url = URL(string: encodeURL) { 
      webView.loadRequest(URLRequest(url: url)) 
     } 
    } 


    override var preferredStatusBarStyle : UIStatusBarStyle { 
     return .lightContent 
    } 

    @IBAction func CancelPressed(_ sender: UIBarButtonItem) { 
     self.dismiss(animated: true, completion: nil) 
    } 

    func webView(_ webView: UIWebView, shouldStartLoadWithRequest request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { 
     if let url = request.url?.absoluteString, url.contains("code=") { 
      if let code = getQueryStringParameter(url,param: "code"){ 
       self.dismiss(animated: true, completion: {() -> Void in 
        UIApplication.shared.isNetworkActivityIndicatorVisible = false 
        self.delegate?.getAccessToken(code) 
       }) 
      } 
     } 
     return true 
    } 

    func webViewDidStartLoad(_ webView: UIWebView){ 
     UIApplication.shared.isNetworkActivityIndicatorVisible = true 
    } 

    func webViewDidFinishLoad(_ webView: UIWebView){ 
     UIApplication.shared.isNetworkActivityIndicatorVisible = false 
    } 

    func getQueryStringParameter(_ url: String?, param: String) -> String? { 
     if let url = url, let urlComponents = URLComponents(string: url), let queryItems = (urlComponents.queryItems) { 
      return queryItems.filter({ (item) in item.name == param }).first?.value! 
     } 
     return nil 
    } 
} 

Ve:

2017-11-07 20: 49: 30,836087 + 0000 TestApp [1851: 1.259.046] TIC burada benim kodudur 3: TCP Conn [: 0x1c0365280 32] başarısız -9800 Err (-9800)

2017-11-07 20: 49: 30,836472 + 0000 TestApp [1851: 1.259.046] NSURLSession/NSURLConnection HTTP yük başarısız oldu (kCFStreamErrorDomainSSL, -9800)

2017-11-07 20: 49: 30.836578 + 0000 TestApp [1851: 1259046] Görev < 0A675AA1-7110-4FCC-99B2-054380D22F01>.

2017-11-07 20 < 0> HTTP yükü (: -1200 [3 -9800] hata kodu): başarısız 30,837548 + 0000 TestApp: 49 [1851: 1.258.708] NSURLConnection hata ile bitmiş - kod -

<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

NB: 1200

Ve zaten benim .plist dosyasına bu var aynı kod hızlı 3,2

+0

olan 1200

elma saatime göre bir ses akışı oynamak için aynı sorun var - kod - .plist dosyasınahatayı

NSURLConnection hatası giderir . ama hızlı versiyonu 3.2 bunu düzeltmek için çok zaman harcadım ama hiçbir şey bulamadım. :(Bunu çözdün mü? – shilei365

cevap

0

ekleme ile mükemmel çalışıyordu Benim geliştirme dili Amaç C.