直接复制拷贝就可以了
@interface SCYBaseWebViewController ()<NSURLConnectionDelegate,NSURLConnectionDataDelegate>{
NSURLRequest *_originRequest;
NSURLConnection *_urlConnection;
BOOL _authenticated;
}
_originRequest为原始请求,通过外部传递的的URL初始化。
_urlConnection = [[NSURLConnection alloc] initWithRequest:_originRequest delegate:self];的初始化
其实只要 _originRequest知道是什么了,剩下直接复制咯#pragma mark - UIWebViewDelegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
if (!_authenticated && [request.URL.scheme hasPrefix:@"https"]) {
_urlConnection = [[NSURLConnection alloc] initWithRequest:_originRequest delegate:self];
[_urlConnection start];
return NO;
}
return YES;
}
#pragma mark - NSURLConnectionDelegate
- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace{
return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust];
}
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge{
if ([challenge previousFailureCount] == 0){
_authenticated = YES;
NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
[challenge.sender useCredential:credential forAuthenticationChallenge:challenge];
} else {
[[challenge sender] cancelAuthenticationChallenge:challenge];
}
}
#pragma mark - NSURLConnectionDataDelegate
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
_authenticated = YES;
[self.webView loadRequest:_originRequest];
[_urlConnection cancel];
}