Android Webview 加载显示比iOS慢的问题

来源:互联网 发布:最强牛股选股公式源码 编辑:程序博客网 时间:2024/06/06 12:47

前言

最近实现一个Webview加载文章,然后下面可以显示评论以及进行评论的界面。当进入这个界面的时候先来一个加载动画,当webview加载好了,在onPageFinished方法里面就隐藏起来加载动画显示文章界面内容。当功能实现完了以后发现一个问题。就是动画执行很久才消失,用户体验很不好,我估计当用户看完加载动画进去看文章时都没有心情看文章了。但是,当我在iPhone上效果时iOS的效果就很快,简直是秒进。

抱着试试看的态度我把同样的链接发送到了标杆--微信,使用微信打开,微信的速度也是不快,但是微信打开腾讯新闻,打开头条新闻链接就很快。然后就给我们的前端工程师反馈了一下,他唰唰唰改了几个地方,果然使用微信打开快了不亚于iOS效果了。但是我的动画执行的事件还是很长。我就想其实这时候界面已经渲染出来了,虽然没有完全渲染完,但是这时候应该让用户看到效果,不应该让用户继续等待了。

在网上搜了一下找到下面这几句话:

关于 JS 延迟加载
Android 的 OnPageFinished 事件会在 Javascript 脚本执行完成之后才会触发。如果在页面中使 用JQuery,会在处理完 DOM 对象,执行完 $(document).ready(function() {}); 事件自会后才会渲染并显示页面。而同样的页面在 iPhone 上却是载入相当的快,因为 iPhone 是显示完页面才会触发脚本的执行。所以我们这边的解决方案延迟 JS 脚本的载入,这个方面的问题是需要Web前端工程师帮忙优化的。

看到这上面的几句话我以为,这个问题必须让前端解决呢,原来Google给我们提供了一个方法,只不过我不知道,这个方法是

@Override    public void onPageCommitVisible(WebView view, String url) {        super.onPageCommitVisible(view, url);        if(isLoading){            isLoading=false;            gif_layout.setVisibility(View.GONE);            //.....        }    }

可以在这个方法里面进行动画隐藏,这时候webview已经对用户可见了,不用放在onPageFinished方法里面了

0 0
原创粉丝点击