J'ai un UIWebView
et je le fais charger une chaîne HTML. La chaîne contient des URL http sur les images. Les images sont chargées, mais la méthode shouldStartLoadWithRequest:
n'est pas appelée pour elles. Il est appelé une seule fois, pour about : blank
. Cependant toutes les demandes d'images sont passées avec succès dans ma sous-classe NSURLCache
, dans la méthode cachedResponseForRequest:
. Mais je voudrais gérer les demandes dans la méthode shouldStartLoadWithRequest:
. Peut-on faire quelque chose à ce sujet? Comment puis-je faire passer ces demandes dans la méthode des délégués?shouldStartLoadWithRequest: pas appelé pour les images
Voici le code:
@interface URLCache : NSURLCache
@end
@implementation URLCache
- (NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request
{
NSLog(@"REQUEST = %@", request.URL);
return [super cachedResponseForRequest:request];
}
@end
@interface ViewController()<UIWebViewDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[NSURLCache setSharedURLCache:[URLCache new]];
NSString* path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"];
NSString* html = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:nil];
self.webView.delegate = self;
[self.webView loadHTMLString:html baseURL:nil];
}
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"URL = %@", request.URL);
return YES;
}
@end