【问题标题】:Android Webview : detecting when page has renderedAndroid Webview:检测页面何时呈现
【发布时间】:2013-03-28 12:26:26
【问题描述】:

我正在编写一个使用大量 webviews 的高级 Android 应用程序。问题是网页视图的 onPageFinished 事件在页面加载但可能尚未呈现时被触发。

我相信有一个 onNewPicture 但自 12 版以来已被删除。

有没有人遇到过同样的问题,我的微调器在页面实际呈现前大约 3-4 秒基本上消失了。

【问题讨论】:

  • 你的微调器和它有什么关系?那个微调器在哪里?
  • 抱歉,当页面加载时我会显示一个加载微调器,然后我想在页面渲染后隐藏它(而不是加载)
  • 您是否暗示发生这种情况是因为在 onpagefinished 之后还必须加载图片?还是这个页面还在做其他事情?
  • 我不太确定,我认为它是加载到成员的 javascript 库。我们无法控制网页。页面在大约 2-3 秒后根据事件完成加载

标签: android webview


【解决方案1】:

对于长文档,WebView 的呈现可能需要很长时间,实际上,onNewPicture 自 API 12 (Honeycomb 3.1) 以来已被弃用,并且自 API 级别 18 (Jellybean 4.3) 起返回空图片。

我已经针对 API 级别 17 (JB 4.2) 进行了测试,它仍然可以正常工作。如果您不需要实际的 Picture 详细信息,可能在 API 18 中也可以正常工作。

请在the issue tracker 上发布此问题,以便我们获得未弃用的替代品。

if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        PictureListener pictureListener = new PictureListener() {
            @Override
            @Deprecated
            public void onNewPicture(WebView view, Picture picture) {
                Log.i(TAG, "Picture changed!");
            }

        };
        webView.setPictureListener(pictureListener);
}

【讨论】:

  • 我用这个方法有一段时间了。现在,我检测到这个方法被调用了四次甚至更多次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多