Created
May 12, 2013 05:04
-
-
Save dinhvh/5562491 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- (NSURLRequest *)webView:(UIWebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(id)dataSource | |
{ | |
MCOAbstractPart * part = NULL; | |
if ([[[request URL] scheme] isEqualToString:@"x-mailcore-msgviewloaded"]) { | |
[self _loadImages]; | |
return request; | |
} | |
if ([MCOCIDURLProtocol isCID:[request URL]]) { | |
part = [self _partForCIDURL:[request URL]]; | |
} | |
else if ([MCOCIDURLProtocol isXMailcoreImage:[ request URL]]) { | |
NSString * specifier = [[request URL] resourceSpecifier]; | |
NSString * partUniqueID = specifier; | |
part = [self _partForUniqueID:partUniqueID]; | |
} | |
if (part != NULL) { | |
if ([_message isKindOfClass:[MCOIMAPMessage class]]) { | |
NSMutableURLRequest * mutableRequest = [request mutableCopy]; | |
NSString * partUniqueID = [part uniqueID]; | |
NSData * data = [[self delegate] MCOMessageView:self dataForPartWithUniqueID:partUniqueID]; | |
if (data == NULL) { | |
[[self delegate] MCOMessageView:self fetchDataForPartWithUniqueID:partUniqueID downloadedFinished:^(NSError * error) { | |
NSData * downloadedData = [[self delegate] MCOMessageView:self dataForPartWithUniqueID:partUniqueID]; | |
NSData * previewData = [[self delegate] MCOMessageView:self previewForData:downloadedData isHTMLInlineImage:[MCOCIDURLProtocol isCID:[request URL]]]; | |
[MCOCIDURLProtocol partDownloadedMessage:_message partUniqueID:partUniqueID data:previewData]; | |
}]; | |
} | |
[MCOCIDURLProtocol startLoadingWithMessage:_message | |
partUniqueID:partUniqueID | |
data:data | |
request:mutableRequest]; | |
return mutableRequest; | |
} | |
else if ([_message isKindOfClass:[MCOMessageParser class]]) { | |
NSMutableURLRequest * mutableRequest = [request mutableCopy]; | |
NSString * partUniqueID = [part uniqueID]; | |
NSData * data = [(MCOAttachment *) part data]; | |
NSData * previewData = [[self delegate] MCOMessageView:self previewForData:data isHTMLInlineImage:[MCOCIDURLProtocol isCID:[request URL]]]; | |
[MCOCIDURLProtocol startLoadingWithMessage:_message | |
partUniqueID:partUniqueID | |
data:previewData | |
request:mutableRequest]; | |
return mutableRequest; | |
} | |
else { | |
return request; | |
} | |
} | |
else { | |
return request; | |
} | |
} | |
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType | |
{ | |
NSURLRequest *responseRequest = [self webView:webView resource:nil willSendRequest:request redirectResponse:nil fromDataSource:nil]; | |
//NSLog(@"responseRequest:%@", responseRequest); | |
if(responseRequest == request) { | |
return YES; | |
} else { | |
[webView loadRequest:responseRequest]; | |
return NO; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment