我想在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显示授权页面。
答案 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脚本,它提供响应的状态代码。