我的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);
}