Swift - UIWebView baseURL导致空白屏幕

时间:2016-02-10 19:48:42

标签: ios swift uiwebview

我需要在我的应用中显示网络浏览器。我无法使用SFSafariViewController,因为我需要能够使用NTLM进行身份验证,因此我目前正在使用Alamofire下载data,然后在UIWebView中显示它。

我有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.")
            }

        })

}

即使将baseURL设置为NSURL(string: "https://dev-moss.stpaulscatholiccollege.co.uk/")NSURL(string: "https://dev-moss.stpaulscatholiccollege.co.uk")print的{​​{1}}仍然会将网站吐出到控制台。

1 个答案:

答案 0 :(得分: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?