Android webview打开网页空白优化
项目使用混合开发,Webview+H5很简单大家都可以搜到相关内容。今天重点讲下一个小问题。我们h5页面是远程的。通过url的方式嵌入到Webview中。这时候有个问题,我启动的时候会有一段空白。
这个
这个白色的等待时间,不固定,可能1-2s,可能3-5s。我一直以为是设置的问题,查了很多资料,还换了腾讯的x5内核,结果并不能有什么用。
最终,我看到一篇文章说,这个没有办法,Webview就像是一个浏览器,你加载就是会有这种问题,你只能去优化它,而不能真的解决这个空白。
解决方案:提供一个loading效果。如图:
这个loading是使用了Android自己的控件 ProgressBar,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:layerType="hardware"><com.tencent.smtt.sdk.WebViewandroid:id="@+id/web_view"android:layout_width="match_parent"android:layout_height="match_parent"tools:layout_editor_absoluteX="8dp"tools:layout_editor_absoluteY="8dp"tools:ignore="MissingConstraints"/><FrameLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" ><ProgressBarandroid:id="@+id/pbLarge"style="?android:attr/progressBarStyleLarge"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:indeterminateDrawable="@drawable/loading_anim" /></FrameLayout></android.support.constraint.ConstraintLayout>
这是布局。
样式:
注意,添加样式文件
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:pivotX="50%"android:pivotY="50%"android:fromDegrees="0"android:toDegrees="1440"android:drawable="@mipmap/loading">
</rotate>
Webview要设置WebChromeClient
webView.setWebChromeClient(webChromeClient);
private WebChromeClient webChromeClient = new WebChromeClient(){@Overridepublic void onProgressChanged(WebView view, int newProgress) {pb_webview.setProgress(newProgress);if(newProgress==100){pb_webview.setVisibility(View.GONE);}else{pb_webview.setVisibility(View.VISIBLE);pb_webview.setProgress(newProgress);}}};
这代码的意思是,webChromeClient 会捕捉当前进度。是不是到了100,到了一百,就表示加载完成。去掉loading效果。
否则就一直加载。
至此,效果已经好了。有好的解决方案可以留言,或者私聊我。
Android webview打开网页空白优化相关推荐
- android 动画 空白页,Android WebView打开网页一片空白的解决方法
问题描述: 网页链接是Https链接 网页链接在电脑的Chrome浏览器中打开正常 网页链接在手机的Chrome浏览器中打开正常 网页链接在IOS的App上打开正常 网页链接在Android App中 ...
- Android WebView获取网页中JavaScript弹框内容
Android WebView获取网页中JavaScript弹框内容 网页中弹窗的js代码为 <script type="text/javascript" language= ...
- Android—WebView加载速度优化工程实践
一.混合开发的优势与缺陷 在混合开发大行其道的今天,很多页面和功能都转由前端实现,客户端只要在APP中嵌入一个WebView即可,同时前端开发的页面对于Android和iOS端的效果是统一的,省去了适 ...
- 安卓开发入门教程-通过WebView打开网页
什么是WebView WebView是用来打开网页的一种UI控件,可以在App内跳转到指定网址,而不是采用系统浏览器打开网页. 基础样例 效果图 实现方案 activity class MainAct ...
- Android WebView屏蔽网页中广告
需求 WebView加载的某些网页里面常常有广告,需要把广告去除,可以利用js把对应的广告块进行隐藏.这里效果就是只展示列表内容. 效果 原始效果 屏蔽后效果 代码 核心JS代码 document.q ...
- android webview打开相册,Android WebView调用本地相册的方法
本文实例为大家分享了Android WebView调用本地相册的具体实现方法,供大家参考,具体内容如下 首先要知道android本身的WebView是并不支持调用手机文件并上传的,其次WebView的 ...
- Android模拟器Webview打开网页报webpage not available
错误如下: 解决方法如下: 1.添加网络权限 在 AndroidManifest.xml 清单文件中添加: <uses-permission android:name="android ...
- Android Webview打开第三方APP(高德地图 淘宝 QQ等等)
现在很多APP不单靠Android原生开发来完成,今天我们就遇到一个情况,app嵌入H5界面也就是我们通常用的Webview来显示.当进行点击操作跳转到对应的APP.比如说点击网页的导航跳转到高德地图 ...
- Android WebView开发问题及优化汇总
我们在native与网页相结合开发的过程中,难免会遇到关于WebView一些共通的问题.就我目前开发过程中遇到的问题以及最后得到的优化方案都将在这里列举出来.有些是老生常谈,有些则是个人摸索得出解决方 ...
最新文章
- SylixOS内核打印调试方法
- const,readonly 这些你真的懂吗? 也许会被面试到哦。。。
- 全网唯一一个可以复现成功的光流计算项目
- Android自定义旋钮效果,Android自定义悬浮按钮效果实现,带移动效果
- 解决github push错误The requested URL returned error: 403 Forbidden while accessing(转)
- weblogic部署连接池
- 结对项目 - 词频统计
- JeeSite 4.0 内置功能模块规划
- from + size must be less than or equal to: [10000] but was [10550]
- lgg6可以root的版本_Kali Linux 2020.1版本变更内容
- Flutter Trying to embed a platform view but the PrerollContext does not support embedding
- 华为MatePad 11开启预售:鸿蒙OS加持 2499元起!
- 如何将 MySQL 去重操作优化到极致?| CSDN 博文精选
- python 网络编程 异步io_python网络编程——网络IO模型
- JDBC学习(八、获取自动生成的主键和大数据类型操作)
- 名人博客阅读摘要三:外部排序
- 小程序云开发之--微信公众号文章采集篇
- Lenovo Y50-70 1080p Hackintosh Catalina
- 修改客户端 与服务器断开,如何处理服务器或客户端socket断开
- 人民币小写金额转大写