2016-02-10 121 views
0

我需要在我的應用程序中顯示Web瀏覽器。我無法使用SFSafariViewController,因爲我需要能夠使用NTLM進行身份驗證,所以我正在使用Alamofire下載data,然後在UIWebView中顯示它。Swift - UIWebView baseURL導致空白屏幕

我已經得到UIWebView通過.loadHTMLString()顯示HTML,但圖像,CSS和Javascript文件沒有加載。我嘗試將baseURL設置爲網站根目錄,但是,當我在UIWebView中完全不加載任何內容時,將它留空,控制檯中沒有任何內容或錯誤。

Alamofire.request(.GET, "https://dev-moss.stpaulscatholiccollege.co.uk/sites/Students/default.aspx").authenticate(usingCredential: credential) 
    .response { request, response, data, error in 

     dispatch_async(dispatch_get_main_queue(), {() -> Void in 

      // check for errors or bad responsecode 
      if (error == nil) && (response?.statusCode == 200) { 
       // load the website 
       let gatewayString = "\(NSString(data: data!, encoding: NSUTF8StringEncoding))" 

       self.gatewayWebView.loadHTMLString(String(NSString(data: data!, encoding: NSUTF8StringEncoding)!), baseURL: nil) 
       print(gatewayString) 

      } 
      else { 
       print("There was an error loading the website.") 
      } 

     }) 

} 

即使設定時,baseURLNSURL(string: "https://dev-moss.stpaulscatholiccollege.co.uk/")NSURL(string: "https://dev-moss.stpaulscatholiccollege.co.uk")gatewayStringprint還是吐出來的是網站,但是控制檯。

回答

2

由於基本網址並非https://dev-moss.stpaulscatholiccollege.co.uk/,因此您的代碼無效,因此它的作用是https://dev-moss.stpaulscatholiccollege.co.uk/sites/Students/default.aspx。嘗試一下,它應該工作。

編輯:

它看起來像它不工作,因爲https://dev-moss.stpaulscatholiccollege.co.uk/sites/Students/default.aspx使用HTTP基本身份驗證,你沒有提供的(在一個UIWebView使得對資源的單獨的請求經由Alamofire,這沒有按了你的一個憑證不包括您的憑據。)請參閱How to do authentication in UIWebView properly?

+0

不幸的是仍然無法使用該基本URL;顯示白色屏幕。 – James

+0

@James見編輯。 – mattsven

+0

感謝您的參考馬特,沒有想到這一點。看起來它會變得更復雜 - 如果只有SFSafariViewController有一個身份驗證提示委託。 – James