【问题标题】:webView loadHTMLString completion?webView loadHTMLString 完成?
【发布时间】:2012-09-28 17:07:42
【问题描述】:

关于这个有几个问题,它有一个关于嵌入在 html 字符串中的脚本的解决方案。不是我的情况。

我有一个 ios5/6 应用程序。 我试图将加载代码放入initWithNibName 坏主意,viewDidLoad 已弃用,所以viewWillAppear 离开了。

- (void) viewWillAppear:(BOOL)animated
{

    NSString* detailHtml = [Storage getDetailHtml: -1];// get the last one
    //NSLog(@"detailHtml: %@", detailHtml);
    if(detailHtml == nil){
        NSLog(@"Can't load the detail");
        detailHtml = @"<html><body>Some text here</body></html>";
    }   
    [webView loadHTMLString:detailHtml baseURL:nil];


    [super viewWillAppear:animated];
}

此代码的问题是闪烁。它出现了 UIViewContoller,带有一个白色的 webView,而不是在 1-2 秒后显示 html。 HTML 有一些文本,但也有 base64 编码的图像,有时它是 3Mb 甚至 5MB 的内容。这里没有 javascript,只有内联 CSS(没有外部文件)、文本和 base 64 编码图像。

我可以将文本预加载到detailHtml,但我认为显示需要更多时间。

在 webView 没有完成加载 html 之前,是否可以不显示 ViewController? - 一些回调?

有什么建议吗?

【问题讨论】:

  • 加载 HTML 字符串需要一点时间。但如果一切正常,为什么不放 UIActivityIndi​​cator 以便让用户与应用程序保持互动。甚至比保持空白要好得多.
  • @AjaySharma 以及何时停止指标? :) 只是要求回电 :)
  • 有委托方法使用这个: - (void)webViewDidFinishLoad:(UIWebView *)webView.And stop your indicator over here.
  • @AjaySharma 请添加您的 cmets 作为答案,以便被接受和投票!
  • 谢谢...我喜欢你的青睐 ;)

标签: ios5 uiviewcontroller uiwebview ios6


【解决方案1】:

加载默认的 HTML 字符串需要一点时间。但如果一切正常,为什么不输入 UIActivityIndicator 以便让用户与应用保持互动。甚至比保持空白要好得多

这是UIWebView的委托方法之一:

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{
//And stop your indicator over here
   [indicator stopAnimating];
}

【讨论】:

  • 如果真的不想要用户白色的东西,我希望我可以从调用 UIViewController 调用回调到这个,然后只弹出它,现在没问题,谢谢
  • 是的,兄弟,你是对的。但一般来说,这是不希望他的视图在同一个屏幕上弹出和加载的人,当时,这种委托方法真的很有帮助。
猜你喜欢
  • 2011-07-22
  • 2016-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
相关资源
最近更新 更多