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

ama*_*kon 16 youtube iphone objective-c uiwebview ios

在我签约建立的应用程序中,我正在提取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返回错误?

Hai*_* Hw 6

您应该检查网址路径
它应该是@" http://google.com "而不是@"google.com"


小智 5

我也有同样的问题,就我而言,事实证明是MIMEType设置不正确。

我通过手动创建一个NSURLConnection来自 URL 的请求进行测试,然后实现:

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
Run Code Online (Sandbox Code Playgroud)

观察连接的响应回调。结果MIMEType是,"pdf/pdf""application/pdf,"我解决这个问题时,webview 就加载了 url 。

希望这可以帮助。


Nik*_* M. 1

您使用的 URL 可能无法识别用户代理。这也是旧版 iOS 版本中出现的问题,但似乎在 iOS 7 中又出现了。尝试将其添加到您的 appdelegate didFinishLaunchingWithOptions 中:

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
Run Code Online (Sandbox Code Playgroud)