UIWebView之网络状况显示

如果直接用UIWebView来显示网页很简单,只需要向UIWebView发送一个NSURLRequest即可。但是你会发现,不够人性化,因为你不知道当前状况,网页是否在加载,是否已加载完。mobile safari就很有人性化, 不但有blue progressbar,还有一个network activity indicator在status bar.

那么我们也需要加入这样的特色到应用当中。加入network activity indicator其实很简单,代码如下:

- (void)showLoading
{
	[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
	self.theActivityView.hidden = NO;
	[self.theActivityView startAnimating];
}

- (void)hideLoading
{
	
	[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
	self.theActivityView.hidden = YES;
	[self.theActivityView stopAnimating];
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
	[self showLoading];
	NSLog(@"start load");
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
	[self hideLoading];
	NSLog(@"finish load");
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
	[self hideLoading];
	NSLog(@"error load");
}

theActivityView是UIActivityIndicatorView的实例。  这样当UIWebView加载网页的时候,就会在status bar有一个indicator,  在UIWebView frame当中还有一个UIActivityIndicatorView以示网页正在加载。

研究了一下如何实现progressbar,还没找到方法。因为UIWebView可用的delegate方法只有那么几个,对进度条显示没有帮助,只有另寻他法。

你可能感兴趣的:(网络,mobile,NetWork,Safari)