Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 7 UIWebView doesn't load webpage

Tags:

ios7

uiwebview

My app uses UIWebview, and it works well in iOS 5 and iOS 6. However, it doesn't load the webpage in iOS 7 when I build in Xcode 5 and run the same code.

 - (void)webViewDidFinishLoad:(UIWebView *)webView {}
 - (void)webViewDidStartLoad:(UIWebView *)webView {}
 - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {}

All delegate function is not called. But I do set delegate in xib file and code

self.theWebView.delegate = self;

I didn't find any information via google. Thank you for your help.

like image 239
Bruce Tsai Avatar asked Sep 22 '13 23:09

Bruce Tsai


2 Answers

I moved the loadRequest method to the completion handler of a presentViewController and it works in iOS 5, 6 and 7:

[self presentViewController:gwvc animated:YES completion:^(void){
    [gwvc.wv loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.walkjogrun.net/about/eukanuba.html"]]];
}];
like image 192
earnshavian Avatar answered Sep 28 '22 00:09

earnshavian


I found the root cause. maybe I incorrectly used UIWebView, but it works in iOS5 and iOS6. I don't know why it works in earlier iOS versions...

Moreover, it works in iOS7 when I build code with SDK 6.1.

Here's my old code.

     RechargeWebPageViewController *webPageViewController;
    webPageViewController = [[  RechargeWebPageViewController alloc] initWithNibName:@"WebPage" bundle:nil];
    if (webPageViewController != nil) {
        webPageViewController.hidesBottomBarWhenPushed = YES;
        webPageViewController.delegate=self;
        [self.navigationController pushViewController:webPageViewController animated:YES];
        NSURL *url = [NSURL URLWithString:@"https://xxx.php"];

        NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: url];
        [webPageViewController loadRequest:request];
        [request release];
   }

I moved the loadRequest from the viewDidLoad method to the ViewWillAppear method, then it worked. I think maybe UIWebView is not initialized correctly in my old code for iOS7.

like image 39
Bruce Tsai Avatar answered Sep 28 '22 00:09

Bruce Tsai