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请求?