私はUIWebView
を持っていて、それにHTML文字列を読み込ませます。文字列には画像へのhttpのURLが含まれています。イメージはロードされますが、shouldStartLoadWithRequest:
メソッドは呼び出されません。それはabout : blank
のためにちょうど呼ばれます。しかし、すべての画像リクエストは、私のNSURLCache
サブクラスに、cachedResponseForRequest:
メソッドに正常に渡されます。しかし、私はshouldStartLoadWithRequest:
メソッドの要求を処理したいと思います。それについて何かできますか?これらのリクエストをデリゲートメソッドにするにはどうすればよいですか? shouldStartLoadWithRequest
方法は、ロードしていない個々の(全体のページがロードされるとき、またはフレームの内容がロードされるときには、ある)のみページのロードのために呼ばれshouldStartLoadWithRequest:画像が呼び出されていない
@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