我的UIWebView有问题。我无法使用Windows身份验证打开网站...在Safari浏览器中,出现一个弹出窗口,因此WebView控件中没有任何反应。

有人可以帮我解决这个问题吗?

这是我的代码

class MainViewController: UIViewController, UIWebViewDelegate, MFMailComposeViewControllerDelegate {

    @IBOutlet weak var webView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad();

        webView.delegate = self;

        let url = NSURL (string: "http://test.raphaels.com/mobile/");
        let requestObj = NSURLRequest(URL: url);
        webView.loadRequest(requestObj);
    }
}

这段代码在iOS模拟器上的非​​安全服务器(URL)上运行正常,而Xcode上的iPhone模拟器/模拟器则运行良好。但是当我使用上面的URL(只能从Intranet访问)时。它要求在浏览器中输入用户名/密码,并在iPhone模拟器中停止。请帮助我,我该如何提供用户名和密码。我在互联网上搜索并找到了许多示例,不幸的是,这些示例都不在快速编程中。

我试图写一个失败的解决方案,所以下面是失败的代码
override func viewDidLoad() {
    super.viewDidLoad();

    webView.delegate = self;


    let username = "username11";
    let password = "password22";
    let loginString = NSString(format: "%@:%@", username, password);
    let loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)!;
    let base64LoginString = loginData.base64EncodedStringWithOptions(nil);

    // create the request
    let url = NSURL (string: "http://test.raphaels.com/mobile/");
    let request = NSMutableURLRequest(URL: url)
    request.HTTPMethod = "POST"
    request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")




    webView.loadRequest(request);
}

最佳答案

它的工作:-)用下面的代码。

override func viewDidLoad() {
        super.viewDidLoad();

        webView.delegate = self;

        let urlComponents = NSURLComponents(string: "http://test.raphaels.com/mobile/");
        urlComponents.user = "username11";
        urlComponents.password = "password22";

        let url = urlComponents.URL;

        let requestObj = NSURLRequest(URL: url!);
        webView.loadRequest(requestObj);
    }

10-04 21:25