2011-08-16 165 views
6

我想在UIWebview中打开一个需要密码和用户名的URL。比如打开我本地的Wifi路由器(192.168.1.1)。但是,当我尝试跟随代码时,Safari不会弹出需要密码和用户名的弹出窗口。如何打开url需要用户名和密码与uiwebview?

NSURL *url = [NSURL URLWithString:@"http://192.168.1.1"]; 
NSURLRequest *httpReq = [NSURLRequest requestWithURL:url]; 
[self._webView loadRequest:httpReq]; 

因为有人告诉我使用NSURLConnectionDelegate,我知道这一点,但我DONOT知道如何表达授权页面到UIWebView的。

+0

尝试添加授权领域,如: http://stackoverflow.com/questions/1973325/nsurlconnection-and-basic-http-authentication – SVD

回答

7

这将有助于

NSURL *url = [NSURL URLWithString:@"http://username:[email protected]"]; NSURLRequest *httpReq = [NSURLRequest requestWithURL:url]; [self._webView loadRequest:httpReq];

3

您需要实现连接:didReceiveAuthenticationChallenge:在NSURLConnectionDelegate中。有关详细信息,请阅读Apple的“URL加载系统编程指南”中的Authentication Challenges一章。

+1

但如何使用一个UIWebView加载请求? – ZYiOS

1

的UIWebView不提供任何机制来识别的响应。因此,在UIWebViewHttpStatusCodeHandling github项目中解释了一个解决方案,该项目标识了响应的状态代码(在您的情况下应为404)。

但是,主要缺点是每个请求都需要使用NSURLConnection并再次加载请求。但在这种情况下,您也可以取消NSURLConnection。

另一个解决方案应该(可能)是使用Java脚本。搜索提供响应状态代码的Java脚本。这里所描述

相关问题