Reputation: 421
Hi in my application i have UIWebView
which loads the pdf
file using URL its very large file its taking too much time to load. Now i want show the user that like its loading progress until it get load the my pdf once my file loaded its has hide the progress bar, how can I achieve this?
My webview code.
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *pdf =@"http://jesusredeems.com/mag/pdf/JRE-2014-03.pdf";
NSURL *url = [NSURL URLWithString:pdf];
NSURLRequest *myRequest = [NSURLRequest requestWithURL:url];
[webview loadRequest:myRequest];
}
I'm using the above code to load my pdf
, how I can use the progress bar for file loading?
Upvotes: 0
Views: 8066
Reputation: 12717
Yes why not, use UIWebView
delegate method
- (void)viewDidLoad
{
[super viewDidLoad];
webview.delegate=self; //Assign Delegate
[webview loadRequest:myRequest];
[self showProgress];//Show Progress
}
Use delegates as below
- (void)webViewDidFinishLoad:(UIWebView *)webView{
if(!webView.isLoading){ //This ensures whether the webview has finished loading..
[self hideProgress];
}
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
[self hideProgress];
}
Cheers.
Upvotes: 3
Reputation: 17186
You should start/stop the progressbar in webview delegate methods.
Add following line in your viewDidLoad
.
webview.delegate = self;
Add following functions in your controller...
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
//Start the progressbar..
return YES;
}
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
//Stop or remove progressbar
}
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
//Stop or remove progressbar and show error
}
Upvotes: 3