我正在开发一个浏览器应用程序,我想跟踪网页加载时消耗的互联网数据量。 我正在使用此方法来计算iOS应用程序收到的数据。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
NSLog(@"Did Receive Data %i", [resourceData length]);
length += [resourceData length];
NSLog(@"Data in MB: %.3f",(length/(1024*1024)));
}
我在iOS模拟器和Android的相同浏览器应用程序中打开http://www.google.com。 当页面加载完成iOS应用程序显示使用的20KB数据但android应用程序显示使用的280KB数据。 在android中有一个类来获取活动会话中使用的数据,该类名称是TrafficStats。我搜索了很多,但在iOS中,我找不到任何类似的类或方法。
当调用webViewDidFinishLoading以获取webView消耗的实际数据以加载该页面时,我也尝试使用此代码。
-(void)webViewDidFinishLoad:(UIWebView *)webView{
NSString* script = @"document.documentElement.outerHTML.length";
length += [[webBrowser stringByEvaluatingJavaScriptFromString:script] floatValue];
NSLog(@"Data in MB: %.3f",(length/(1024*1024)));
//[self performSelectorOnMainThread:@selector(dataUsedByApp) withObject:nil waitUntilDone:5.0];
}
但这也不准确,因为它不能计算图像的大小,而且大小是用@" document.documentElement.outerHTML.length"计算的。
请帮我解决这个问题。 :)