比如类似下面的 URL,
http://user:password@www.example.com/
需要用户的认证,如果用 UIWebView 访问这样的页面,可以使用下面的委托方法。
- (void)webView:(id)fp8 resource:(id)fp12 didReceiveAuthenticationChallenge:(id)fp16 fromDataSource:(id)fp20;
具体参数形式如下。
- (void)webView:(UIWebView *)webView
resource:(NSObject *)resource
didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
fromDataSource:(WebDataSource *)dataSource;
利用第3个参数—认证的Challenge对象(NSURLAuthenticationChallenge)的 sender 方法,红色纸认证的信息。如果认证失败,可以从NSURLAuthenticationChallenge 的 previousFailureCount 中取得失败的次数。
- (void)webView:(id)webView resource:(id)resource didReceiveAuthenticationChallenge:(id)challenge fromDataSource:(id)dataSource {
NSURLCredential *credential = [NSURLCredential credentialWithUser:@"user" password:@"password" persistence:NSURLCredentialPersistenceForSession];
[[challenge sender] useCredential:credential forAuthenticationChallenge:challenge];
}