如何打开网址需要使用uiwebview的用户名和密码?

时间:2011-08-16 02:26:51

标签: iphone uiwebview

我想在UIWebview中打开需要密码和用户名的URL。比如打开我的本地Wifi路由器(192.168.1.1)。但是当我尝试使用代码时,Safari没有弹出窗口要求密码和用户名。

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

由于有人告诉我使用NSURLConnectionDelegate,我知道这一点,但我不知道如何向UIWebView显示授权页面。

3 个答案:

答案 0 :(得分:7)

这将有助于

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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

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

另一个解决方案应该(可能)是使用Java-Script。搜索Java脚本,它提供响应的状态代码。