6

关于这个有几个问题,它有一个关于嵌入在 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文本中,但我认为显示需要更多时间。

是否可以不显示 ViewController,直到 webView 尚未完成加载 html ?- 一些回调?

有什么建议么?

4

1 回答 1

5

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

这是一种委托方法UIWebView

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{
//And stop your indicator over here
   [indicator stopAnimating];
}
于 2012-10-08T16:04:25.200 回答