【问题标题】:Does iPhone/iPad UIWebView need to be active view to render?iPhone/iPad UIWebView 是否需要活动视图才能呈现?
【发布时间】:2012-03-24 17:21:08
【问题描述】:

我需要在屏幕外将网页渲染为位图,然后将位图显示给用户。这可以通过主线程上的简单代码来完成,如下所示:

NSString *urlAddress = @"http://www.google.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[offscreenWebView loadRequest:requestObj];

或者我需要将 UIWebView 附加到活动视图吗?

在 Android 中,Web 视图似乎不会呈现,除非它是活动视图的一部分。因此,要在 Android 中完成这项任务,我需要创建一个视图层次结构,为 Web 渲染器创建一个活动视图,然后在其上放置另一个视图,让它在屏幕外绘制。

【问题讨论】:

    标签: iphone ios uiwebview


    【解决方案1】:

    我自己在这个问题上苦苦挣扎了一段时间。除非将 UIWebView 添加到 UIWindow 对象,否则它不会呈现。但是,这不一定是您用来显示应用程序的窗口。您可以创建一个单独的 UIWindow 对象,并将 UIWebView 附加到该对象,它会呈现得很好。但是,UIWebView 渲染是一个缓慢的过程,因此在准备好之前会有短暂的延迟。完成后,它将向其委托触发 webViewDidFinishLoad 方法。

    【讨论】:

    • iOS 7.0 上似乎不再是这种情况
    • @diablosnuevos 这很有趣!好久不用这个流程了,一直没跟上。
    • 从一些实验证据...看起来它会延迟渲染相当多。我仍在努力寻找确切的差异。
    • WKWebView 也是这样吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多