应用程序进入前台后,UIWebview白屏

时间:2015-04-09 07:06:22

标签: ios objective-c uiwebview

我的应用程序只是一个加载给定网址的简单webview。我的问题是,如果我在一段时间后打开我的应用程序,webview将不再显示其内容。我的问题是如何知道webview是否呈现了什么,或者它是否显示白屏,我必须重新加载它。

我搜索过没有运气,所以我很感激任何有关我能找到问题解决方案的网站的建议或指示。

提前致谢!

如果有人需要这个我加载这样的内容并且一切正常,除非我不使用它一段时间并且它位于背景中,在它进入前景后它是白色的。我想iOS正在以这种方式处理内存,并清除webview。

- (void)loadWebView
{
    NSDate *date = [NSDate date];
    long unixTimeStamp = (long)[date timeIntervalSince1970];

    NSString *urlString = [NSString stringWithFormat:@"http://www.myurlExample.com/mobile/?timestamp=%lu&secret=%@",unixTimeStamp,[[NSUserDefaults standardUserDefaults] objectForKey:kUniqueUserSecretID]];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
    NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];

    [request setHTTPShouldHandleCookies:YES];
    NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies: cookies];
    [request setAllHTTPHeaderFields:headers];

    [self.webView loadRequest:request];
}

2 个答案:

答案 0 :(得分:3)

听起来像你前景应用程序时出现的问题? 您可以在AppDelegate.m中执行类似的操作:

- (void)applicationWillEnterForeground:(UIApplication *)application {

   // Depending on the architecture of your app, grab the handler to your controller that contains the webView
  [webViewController.webview reload];
}

答案 1 :(得分:1)

一种方法可能是使用-stringByEvaluatingJavaScriptFromString:来检查网络视图的内容。例如,您可以执行以下操作:

NSString *head = 
    [myWebView stringByEvaluatingJavaScriptFromString:
        @"document.getElementsByTagName(\"head\")"];