我对 UIWebview 有疑问。我在我的 web 视图中调用了几次用于打印图片的 url,然后我计算了我的图片显示了多少次。
当我调用图片的 url 时,计数与打印次数匹配。
NSURL *URL = [NSURL URLWithString:@"http://url_pictures.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
[adView loadRequest:request];
当我用 loadhtmlstring 调用 url 时,我的计数器为 1。使用 loadhtmlstring 对我来说非常重要,因为我的 API 返回一个带有 javascript 的 html 代码。
NSString *html = @"<html><head></head><body>document.write(\"<a target=\"_blank\"ref=\"http://url_redirect.com\"><img border=\"0\" src=\"http://url_pictures.com\"></a>\");</body></html>";
NSString *baseURL = [mbAdUtil getBaseURL:html];
NSString *script = [[NSString alloc] initWithFormat:@"%@", html];
[adView loadHTMLString:script baseURL:[NSURL URLWithString:baseURL]];
我测试了很多我的计数器与打印相同的东西。
这是我测试的一些例子:
[webView loadHTMLString:@"" baseURL:nil];
[webView stopLoading];
[webView setDelegate:nil];
[webView removeFromSuperview];
其他 :
// remove all cached responses
[[NSURLCache sharedURLCache] removeAllCachedResponses];
// set an empty cache
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
// remove the cache for a particular request
[[NSURLCache sharedURLCache] removeCachedResponseForRequest:request];
此外,我通过销毁我的项目实例并创建另一个来进行测试。我破坏了我的 webview,我所有的变量......还有很多我不记得的东西。我的计数器始终为 1。
我更好的解决方案是:
[webView loadHTMLString:@"" baseURL:nil];
[webView stopLoading];
[webView setDelegate:nil];
[webView removeFromSuperview];
有了这个,我计算了 2 到 3 次打印,但视觉结果不是我所期望的。