我正在创建一个iOS应用程序。其中,有一个webview,有url,它有身份验证挑战。
我如何处理它,在我的应用程序第一页是要求用户登录凭证。然后将此凭据传递给下一个存在webView的viewController。之后,我在viewDidLoad()
的webView中加载了一个请求。它触发了它的委托方法shouldStartLoadWithRequest:
,其中我设置NSUrlRequest
以将凭证传递给身份验证质询。整个方案每次都正常工作,直到身份验证挑战失败。
当身份验证质询失败时,我将用户带入之前的登录视图,并让用户再次输入登录凭据。这次我转到下一个存在webView的viewController,viewDidLoad
中的凭据和加载请求,shouldStartLoadWithRequest
没有被调用。我已经尝试过清除会话,清除缓存等所有内容,但仍然没有成功。
以下是设置WebView Request
- (void)viewDidLoad
{
[super viewDidLoad];
[_webviewclass loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:contentURL]]];
_webviewclass.delegate = self;
_webviewclass.dataDetectorTypes = UIDataDetectorTypeLink | UIDataDetectorTypePhoneNumber;
}
这是委托方法
在认证失败后调用此文件
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
UrlRequest = request;
NSURL * localurl = [request URL];
if (![[localurl absoluteString] isEqualToString:@"about:blank"])
{
InDownloading = YES;
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
NSLog(@" connection to remove warning : %@",connection);
[self WaitForConnectionDownload];
return YES;
}
return NO;
}
请大家帮帮我。
谢谢