我可以使用以下方法拦截来自 UIWebView 的初始加载请求:
(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType.
如何记录我正在加载的页面的所有请求?
Update:另一种选择是使用NSURLProtocol
听取应用程序发出的请求,包括来自网络视图的所有请求。
我会建议一个创造性的解决方案。这并不是您真正想要的,但由于目前使用 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];
这将创建一个共享缓存,并且应用程序的所有 URL 请求都将通过此缓存,包括您的 Web 视图。但是,您可能会从其他来源获得更多您不想要的 URL。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)