UIWebView委托方法shouldStartLoadWithRequest:未被调用

时间:2015-03-13 11:22:12

标签: ios webview uiwebview

我正在创建一个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;

}

请大家帮帮我。

谢谢

0 个答案:

没有答案