【问题标题】:blank screen appear few millisec before uiwebview display local HTML page在 uiwebview 显示本地 HTML 页面之前出现空白屏幕几毫秒
【发布时间】:2011-10-28 19:40:30
【问题描述】:

我有一个显示表格视图的 UINavigationController。当我单击一行时,我会在包含 UIWebView 的堆栈上推送一个新视图。 在视图控制器内部,我在 UIWebView 中加载了一个本地 HTML 页面。它工作正常,除了在显示 UIWebView 时第一次启动应用程序时,会在 1 秒内推送一个空白的白色屏幕以真正显示 HTML 内容。 下一次也会显示空白屏幕,但只有几毫秒。

如何避免在显示 HTML 之前出现此空白屏幕? 这是我用来在 uiWebView 中显示 HTML 文件的代码。

    NSString *localizedAboutHTML = NSLocalizedString(@"About", @"Filename of the HTML page to be displayed depending on the language");
    NSString *path = [[NSBundle mainBundle] pathForResource:localizedAboutHTML ofType:@"html"];
    NSURL* baseURL = [NSURL fileURLWithPath:path];
    NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];

    NSString *htmlString = [[NSString alloc] initWithData: 
                  [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding];

webView.opaque = YES;
webView.backgroundColor = [UIColor blackColor];
[self.webView loadHTMLString:htmlString baseURL:baseURL];
[super viewWillAppear:animated];

谢谢,

塞伯。

【问题讨论】:

    标签: iphone html ios uiwebview uinavigationcontroller


    【解决方案1】:

    因为 WebView 加载可能需要更长的时间,这取决于您的 HTML 文件。如果您不想在短时间内显示白屏,为什么不添加活动指示器以显示 webview 正在为用户加载。另一种选择是隐藏 webView 并在 webview 委托方法中的 webView 加载完成后显示它 webViewDidFinishLoad:(UIWebView *)webView

    【讨论】:

    • 非常感谢。我刚刚使用 webViewDidFinishLoad 方法实现了委托 UIWebDelegate,它运行良好。我不需要添加活动指示器,因为我的页面加载速度非常快,因为它是嵌入在我的应用程序中的 HTML 文件。
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    相关资源
    最近更新 更多