我的应用程序只是一个加载给定网址的简单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];
}
答案 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\")"];