iosobjective-cuiwebviewios-web-app

How do I reload a webview once home button is pressed?


I want to reload my url once I press the home button. I tried the code mentioned in this thread: How to reload a UIWebView on HomeButton press But none of those refreshes/roloads my app once I return to the app from my main screen.Here's the code for it so far, any ideas what I am missing?

import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize webview;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    //load url into webview
    NSString *strURL = @"http://myserver.com/firstpage";
    NSURL *url = [NSURL URLWithString:strURL];
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
    self.webview.delegate = self;
    [self.webview loadRequest:urlRequest];


}

- (id)init
{
    self = [super init];
    if (self) {
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(reloadWebView:)
                                                     name:UIApplicationWillEnterForegroundNotification
                                                   object:nil];
        // Do some more stuff
    }
    return self;
}
- (void)reloadWebView:(NSNotification *)notification
{
    [webview reload];
}
- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    [self.webview reload];
}

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
//No Internet Connection error code
-(void)webView:(UIWebView *)myWebView didFailLoadWithError:(NSError *)error {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error!" message:@"You have no internet connection!" delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil, nil];
    [alert show];

}
//Close app from AlertView
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    return;
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

Solution

  • Put this code in viewDidLoad

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadWebView:) name:UIApplicationWillEnterForegroundNotification object:nil];
    

    and this code in viewDidUnload

    [[NSNotificationCenter defaultCenter] removeObserver:self];