嵌入在UIWebview中的iFrame请求在iOS 8中被取消

时间:2014-11-20 06:18:12

标签: ios iframe uiwebview

iFrame在iOS 7中呈现,但在iOS 8中,UIWeview中嵌入的iFrame请求失败并显示error 999(取消)。似乎iFrame请求在主要请求仍在进行时被取消(webView.isLoading返回TRUE)。因此,它在Web视图中显示空格而不是iFrame。

此问题仅适用于iOS 8.请提供代码段,以便在Web视图(iOS 8)中成功呈现iFrame。

NSString *HTML = [NSString stringWithFormat:@"<html> \n"                   
                                           "<head> \n"
                                           "<style type=\"text/css\">\n" 
                                           "iframe { max-width: 100%%; width: auto; height: auto; }" 
                                           "img { max-width: 100%%; width: auto; height: auto; }" ....]; 
[cell.webView loadHTMLString:HTML baseURL:[NSURL URLWithString:@"http://"]];

然后,在自定义单元格(单元格)中调用webView委托函数: -

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    return YES;
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    …
 }

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
    NSLog(@"%@",error);
}

在iOS 8中,iFrame请求在shouldStartLoadWithRequest中启动,在didFailLoadWithError error 999中失败:

Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed. (NSURLErrorDomain error -999.)" UserInfo=0x7ff6cb609580 {NSErrorFailingURLStringKey

此时,webView.isLoading为真,因为主要请求仍未完成。主请求完成后有没有办法调用iFrame请求?

0 个答案:

没有答案