奇怪的UIWebView行为 - UIWebView拒绝停止

时间:2010-09-03 15:22:44

标签: ipad uiwebview

我的UIWebView表现得很奇怪。例如,如果我从http://google.co.uk转到http://ftd.de(新闻网站),它将开始循环错误。它不关心我是否按下停止,它只是继续。

日志输出以下内容并循环显示消息:

2010-09-03 16:16:55.061 Test [1336:207] http://www.ftd.de/
2010-09-03 16:16:55.077 Test [1336:207] {
    NSErrorFailingURLKey = http://www.ftd.de/;
    NSErrorFailingURLStringKey = "http://www.ftd.de/";
}
2010-09-03 16:16:55.082 Test [1336:207] http://www.google.co.uk/
2010-09-03 16:16:55.101 Test [1336:207] {
    NSErrorFailingURLKey = http://www.google.co.uk/;
    NSErrorFailingURLStringKey = "http://www.google.co.uk/";
}

并且这一直在循环,直到我杀了应用程序。

什么会导致这样的事情?如您所见,错误字典不提供有关错误的任何信息。

所以我尝试了这种解决方法:

if ([[error userInfo] objectForKey:@"NSLocalizedDescription"] == nil)   {       NSLog(@"Stop!");        
[browser goBack];       
[browser stopLoading];  
}

然而,这也不会阻止webview。

有什么想法吗? :)我正在使用iPad SDK。

3 个答案:

答案 0 :(得分:1)

我不确定我是否理解了何时调用stopLoading的上下文。

我也不明白为什么你在调用stopLoading之前调用goBack ...这显然只是你试图使用它的上下文...我猜它是错误的上下文或困难的上下文尝试工作......

所以...所以是的,无论如何,试着忘记你现在正努力工作的所有背景,只是简单地给出你所描述的行为尝试别的东西:

一个建议:摆脱你的解决方法尝试并尝试这种解决方法 - 在加载任何请求之前/在任何地方调用loadRequest之前...为什么不尝试调用stopLoading?因此,重申只需在调用loadRequest之前立即调用stopLoading。

值得一试。就像我说的那样,我认为你的goBack和stopLoading调用都是错位的,即使它们的背景仍然不是很清楚......所以最终的结果是你应该尝试一些更多的工作,因为我很难通过您提供的信息帮助您优化当前的解决方法。

如果您需要更多有关变通方法的建议,请告诉我......我想我现在一次只提供一个。

答案 1 :(得分:0)

您是否检查了发送命令的部分以加载这些网站,以查看它们被调用的频率?也许你的代码意外地反复调用这些代码。

答案 2 :(得分:0)

问题可能是您将“http://ftd.de”作为字符串传递给webview而不是URL。

更明确地说你使用的是:

[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://ftd.de"]]]; 

希望这能解决问题。