相关疑难解决方法(0)

有没有人发现某些URL的UIWebView失败了?

我已经在iPhone应用程序上工作了几个星期,我添加的早期功能之一是UIWebView,它加载了上下文敏感的维基百科页面主题.这实现起来非常简单,并且已经工作了一段时间.

今天,我发现功能意外地停止了工作.我一直在那段代码的周边摆弄,最初认为我已经破坏了一些东西.

我检查了所有显而易见的地方,我的网址是UIWebView仍然连接在XIB等.我没有发现任何问题.

进一步调查,我在我的UIWebViewDelegate didFailLoadWithError上遇到了一些错误处理,发现我收到了-999错误:

NSURLErrorCancelled

取消异步加载时返回.

Web Kit框架委托在对加载资源执行取消操作时将收到此错误.请注意,如果取消下载,NSURLConnection或NSURLDownload委托将不会收到此错误.

所以这听起来像是在原始请求完成之前发出新请求(或取消).我检查我的代码是否有这样的东西,然后空出来.

因此,我进入了惯常的偏执狂,并假设维基百科正在阻止基于UAgent或其他东西的请求,并继续进行一些疯狂的追逐,试图欺骗我回到幸福的地方.这些尝试没有成功,最终理智得到了胜利.我创建了一个简单的python脚本来模仿我在模拟器中从我的APP发出的HTTP请求,看看维基百科发回的内容:

string = "GET /wiki/Franklin_D._Roosevelt HTTP/1.1\r\nHost: en.wikipedia.org\r\nUser-Agent: test\r\nReferer: http://en.wikipedia.org/wiki/Franklin_D._Roosevelt\r\nAccept: */*\r\nAccept-Language: en-us\r\n_Accept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\n\r\n"
import socket
s = socket.socket()
s.connect(("en.wikipedia.org",80))
s.send(string)
x = s.recv (1000)
while (x):
    print x
    x = s.recv (1000)
Run Code Online (Sandbox Code Playgroud)

所以我运行这个人,发现维基百科非常友好地及时完整地返回我的数据.那么发生了什么?

Chinks开始出现在我的每一个礼物,偏执的盔甲"这总是我的错",我决定检查其他iPhone应用程序是否可以查看这些URL.我发布了一条带有讽刺意味(我很容易被逗乐)URL 的推文,并查看Tweetie是否可以查看该网址.它不能.

一位朋友在Twitterific中试一试.同样的问题.在Safari和维基百科应用程序中工作正常,但似乎使用沼泽标准UIWebView的 iPhone应用程序在维基百科页面上遇到问题.

为了完全确定没有其他变量,我创建了一个简单的测试应用程序,只加载了一个UIWebViewhttp://en.wikipedia.com,它失败并出现相同的错误(最后添加了代码).

那你觉得怎么样?这只是一个UIWebView错误吗?任何苹果公司的人都知道这里发生了什么事吗?

我是否错过了一些完全明显的东西,我再次坐在火车上工作,没穿裤子?

期待听到您的想法.请记住,这昨天工作正常.

汇报(或者说Post Mortem更合适):

感谢Duncan提供的解决方案以及对此处发生的事情的清晰描述.

看起来我最初看到错误的原因,当我没有实现didFailLoadWithError委托方法时,该方法的默认行为显然是清除UIWebView并因此终止请求.当我添加我的实现以了解发生了什么时,我坚持使用一些代码将错误写入视图,正如Duncan指出的那样,这就是我得到的结果. …

iphone uiwebview

16
推荐指数
1
解决办法
1万
查看次数

如何解决UIWebView中的"帧加载中断"错误?

在我签约建立的应用程序中,我正在提取YouTube视频列表并允许它们显示在应用程序中.但是,当用户点击YouTube视图的导航控制器中的单元格并显示带有UIWebView的模态视图时,UIWebView将返回错误"帧加载中断".

我已经通过调试器运行了几十次,在我初始化NSURLRequest之前,一切似乎都很顺利.显示模态视图时,以下是在ViewController -viewDidLoad方法中运行的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    _webView = [[UIWebView alloc] init];
    _webView.delegate = self;
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:_url];
    [_webView loadRequest:request];
}
Run Code Online (Sandbox Code Playgroud)

但是,当我在线上调出调试器时[_webView loadRequest:request];,我看到以下内容:

在此输入图像描述

有谁知道为什么UIWebView返回错误?

youtube iphone objective-c uiwebview ios

16
推荐指数
3
解决办法
3万
查看次数

标签 统计

iphone ×2

uiwebview ×2

ios ×1

objective-c ×1

youtube ×1