2011-08-16 195 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腳本。這裏所描述

相關問題