UIWebView からの初期ロード リクエストを次のようにインターセプトできます。
(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType.
読み込んでいるページからのすべてのリクエストをログに記録するにはどうすればよいですか?
UIWebView からの初期ロード リクエストを次のようにインターセプトできます。
(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType.
読み込んでいるページからのすべてのリクエストをログに記録するにはどうすればよいですか?
更新:別のオプションはNSURLProtocol
、Web ビューからのすべてのリクエストを含め、アプリケーションが行うリクエストを聞くために使用することです。
クリエイティブな解決策を提案します。これは実際には望んでいるものではありませんが、SDK では現時点では実際には不可能であるため、これが唯一の可能な解決策です。
@interface PrintingCache : NSURLCache
{
}
@end
@implementation PrintingCache
- (NSCachedURLResponse*)cachedResponseForRequest:(NSURLRequest*)request
{
NSLog(@"url %@", request.URL.absoluteString);
return [super cachedResponseForRequest:request];
}
@end
アプリのデリゲートで、次の操作を行います。
NSString *path = ...// the path to the cache file
NSUInteger discCapacity = 10*1024*1024;
NSUInteger memoryCapacity = 512*1024;
FilteredWebCache *cache = [[Printing alloc] initWithMemoryCapacity: memoryCapacity diskCapacity: discCapacity diskPath:path];
[NSURLCache setSharedURLCache:cache];
これにより、共有キャッシュが作成され、Web ビューを含め、アプリケーションのすべての URL リクエストがこのキャッシュを通過します。ただし、他のソースから不要な URL を取得する場合があります。
以下のコードを試してください
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"url %@", [[request URL] absoluteString]);
return YES;
}
それがあなたを助けることを願っています。
これは機能します:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"url %@", [[request URL] absoluteString]);
return YES;
}
必ず入れてくださいwebView.delegate = self;
。[super viewDidLoad]
そうしないと、何も表示されません。