尝试请求url时iOS UIWebView崩溃

时间:2015-09-02 08:59:51

标签: ios uiwebview

我收到了以下错误,

  Assertion failed: (stream != NULL), function cb_spdylay_on_stream_close, file /SourceCache/CFNetwork_Sim/CFNetwork-711.1.12/SPDY/SPDYConnection.cpp, line 1775.

尝试使用代码打开链接时

 - (void)viewDidLoad 
{
   [super viewDidLoad];
   [self.webV loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://drive.google.com/file/d/0B_FNaB0Xf3wVRVg3UVhaLWpPclU/view"]]];
}

这个错误在3天之前没有发生

3 个答案:

答案 0 :(得分:2)

我也遇到了这个问题。我知道它并没有多大帮助,但在访问某些服务器时,它看起来像是一个iOS 8+的错误。

我在从云端硬盘访问资源时也看到了这一点,所以他们最近可能会改变一些内容吗?

信息不稳定,但this is what I'm basing my conclusion on

修改

我还没有机会对此进行测试,但我目前的理论是,通过迁移到使用WebKit-based view for iOS 8.x +视图可以解决此问题。我希望在接下来的一两天内有时间来测试这个理论。之后我会在此处发布我的结果。

新编辑:

我刚测试用WKWebView打开相同的URL。好消息是它并没有崩溃。坏消息是我收到了错误:

Error Domain=WebKitErrorDomain Code=300 "WebKit encountered an internal error"

非常有帮助,Apple。我还在研究,但还没有运气。

答案 1 :(得分:1)

有两个解决方案。

  1. 转到WKWebView:适用于iOS 8 +
  2. 添加自定义UserAgent
  3. 使用此示例UserAgent:

      

    Mozilla / 5.0 AppleWebKit / 600.5.17版本/8.0.5 Safari / 600.5.17

    NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Mozilla/5.0 AppleWebKit/600.5.17 Version/8.0.5 Safari/600.5.17", @"UserAgent", nil];
    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
    

    大概是Spoofing

      

    某些网站会向要求同一页面的不同程序提供不同的内容。在极端情况下,网站可能完全拒绝访问某些程序。发生这种情况时,您可以尝试通过“欺骗”作为另一个浏览器来访问该网站。

    在我的博客上查看详细信息:http://trinnguyen.com/cocoa-spdy-issue-fixed-for-webview/

答案 2 :(得分:0)

我们在iOS 8.x上遇到了崩溃:

    CFNetwork 0x0000000184574058 cb_spdylay_on_stream_close + 192

似乎在iOS 9 Beta 5和iOS 7.1中它运行得非常好。