iOS 5 - 空白 UIWebView 在 ViewDidAppear 之前导致长时间延迟

Posted

技术标签:

【中文标题】iOS 5 - 空白 UIWebView 在 ViewDidAppear 之前导致长时间延迟【英文标题】:iOS 5 - Blank UIWebView causing long delay before ViewDidAppear 【发布时间】:2013-06-04 11:21:54 【问题描述】:

每次我尝试将 UIWebView 添加到我的应用程序时,它都会将主线程锁定 5-10 秒。我终其一生都无法弄清楚如何防止这种情况发生。

它在 ViewWillAppear 和 ViewDidAppear 之间锁定 UIWebView 未加载任何内容。我没有加载代码 任何。 这只发生在运行 5.1 的实际 Ipad 2 上。它不是 发生在模拟器上。 如果我 popViewController,然后再推它,它不会延迟

我尝试过的:

[webView loadhtmlString:nil baseURL:nil]; 在 ViewDidLoad 中 [webView stopLoading]; 在 ViewDidLoad 中 在界面生成器中设置 WebView 隐藏

我没有尝试过阻止这种情况。

我有一个执行此操作的简单按钮:

TestViewController *test = [[TestViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:test animated:YES];

TestViewController 是一个空白的 ViewController,在 xib 文件中添加了 UIWebView

@implementation TestViewController

  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) 
    
    return self;
  

  - (void)viewDidLoad
  
    [super viewDidLoad];
  

  - (void)didReceiveMemoryWarning
  
    [super didReceiveMemoryWarning];
  

@end

【问题讨论】:

【参考方案1】:

试试这个? [webView loadHTMLString:@"" baseURL:@""];

【讨论】:

没有骰子。仍然挂起 5-10 秒,然后抛出异常(baseURL 需要一个 NSURL 并且你传递了一个字符串)。这说明延迟不在于WebView加载其内容,而在于WebView本身的绘制? 那很烦人...baseUrl:[NSURL URLWithString:@""]怎么样 试过了。我在那次调用之前和之后写了一个日志,它执行得非常快。之后就停止了

以上是关于iOS 5 - 空白 UIWebView 在 ViewDidAppear 之前导致长时间延迟的主要内容,如果未能解决你的问题,请参考以下文章

iOS - UIWebview - 3G 上的评论被剥离

UIVisualEffects、UIWebView 透明背景

UIWebView 空白页旋转

iOS - UIWebView 加载 HTML 字符串包含 iframe 不起作用

UIWebView 显示空白,除非重新加载

无法在 UIWebView IOS 5 中捕获触摸