【问题标题】:Redirected URL in UIWebview not loading imagesUIWebview 中的重定向 URL 未加载图像
【发布时间】:2013-12-23 12:34:01
【问题描述】:

我在 UIWebView 中加载 URL 时遇到问题。 URL 重定向到不同的位置。 我使用以下代码处理此重定向:

- (NSURLRequest *)connection:(NSURLConnection *)inConnection willSendRequest:(NSURLRequest *)inRequest redirectResponse:(NSURLResponse *)inResponse {

    if(inResponse) {
        NSMutableURLRequest *req = [[inConnection originalRequest] mutableCopy];
        [req setURL:[inRequest URL]];

        return req;
    }

    return inRequest;
}

但是,当页面加载时,我在所有图像上都得到 404。我可以毫无问题地在 Safari 中加载 URL。这发生在 iOS6.1 和 iOS7 上

我完全不知道该怎么做。 不幸的是,我无权访问服务器,所以我必须处理我的应用程序中的所有内容。

感谢您的建议。

【问题讨论】:

    标签: uiwebview ios7 nsurlconnection ios6.1 nsurlconnectiondelegate


    【解决方案1】:

    啊,好吧, 所以似乎发生了什么,我的自定义身份验证协议正在处理初始请求,然后当重定向请求进入时,第二个缓存协议正在拦截图像请求并中断重定向。

    在 authprotocol 的 startLoading 方法中,我执行以下操作:

    [NSURLProtocol setProperty:@YES forKey:@"AuthSet" inRequest:newRequest];
    

    所以在缓存协议的 canInitWithRequest 方法中,我执行以下操作:

    if([NSURLProtocol propertyForKey:@"AuthSet" inRequest:request] != nil)
        return NO;
    

    因为,当我们缓存时,我们不需要遵循重定向。所以基本上如果 Auth 协议抓取了请求,缓存协议不应该响应它。

    会在一些测试后更新,看看是否有任何其他副作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 2012-01-07
      • 2013-06-03
      相关资源
      最近更新 更多