原文:Android webview只加载10%且出现白屏问题排查解决 - Stars-One的杂货小窝

问题

有一个主页面,布局里是包含的一个自定义Webview,并且注入了些原生的方法进去,供原生JS调用

原生JS调用某个方法后,会先弹出个对话框,之后进入到另外一个含Webview的页面,并加载JS传递过来的一个url,但是却出现了白屏的问题

排查

首先,根据网上的资料,一一排查了一遍,但都没有结果

之后,我尝试注释掉了设置WebChromeClient对象,发现网页均可以正常加载

但此方法不是我想要的,因为我的自定义WebView是实现了文件上传的功能,如果不设置WebChromeClient的话,文件上传的功能不可使用

之后网上的大多是解决方案都是去改WebViewClient的,所以,肯定不是我这种情况的解决方法

在找资料的过程中,知道WebChromeClient类中提供了一个方法,可以获取当前网页的加载进度,于是重写了此方法,将进度打印了出来,但是进度就是加载到10%,之后没有任何反应了,页面也是白屏的

抱着试一试,搜索了webview 加载卡住,结果中发现了一个符合我情况的标题Android WebView 进度卡住10%不动,页面空白,页面无反应,不报错

进去一看,瞬间就有了思路,原来是我用来测试的html里js代码有触发js弹窗,然后我又是再弹窗之后直接跳转到页面,于是新页面中的webview加载资源就被暂停调了

于是我把html里的js弹窗取消,于是网页也是能够正常加载出来了

这个问题也是排查了两天,真不容易

如果硬要解释的话,webview设置了WebChromeClient,里面含有js弹窗的相关处理的方法回调,所以把新页面的webview的加载给暂停了,但是如果不设置WebChromeClient,相当于没有js弹窗拦截,所以就不会讲webview的加载给暂停

参考

Android webview只加载10%且出现白屏问题排查解决的更多相关文章

  1. Android WebView页面加载优化

    目前webapp越来越多,体验也越来越好,为了能够更好的使用WebView展示出流畅的的页面,可以从以下几点做优化: WebView缓存 资源文件本地存储 减少耗时操作 客户端UI优化 可能有人会说了 ...

  2. Android ListView只加载当前屏幕内的图片(解决list滑动时加载卡顿)

    最近在做ListView分页显示,其中包括图片 和文字(先下载解析文字内容,再异步加载图片)发现每次点击下一页后,文字内容加载完毕,马上向下滑动,由于这时后台在用线程池异步下载图片,我每页有20条,也 ...

  3. Android WebView如何加载assets下的html文件

    项目需求:将html文件以及所用到的图片都放在 assets/html/ 目录下.然后在页面上通过WebView来显示 直接付上代码: private void readHtmlFormAssets( ...

  4. android webview无法加载网页

    主要原因是没有在AndroidManifest.xml里面设置如下: <user-permission android:name="android.permission.INTERNE ...

  5. android webview如何加载asset目录里的页面

    在asset里的页面都可以这样获得 file:///android_asset/index.html

  6. 【Android】再来一篇Fragment懒加载(只加载一次哦)

    效果 老规矩,先来看看效果图 没错,我又入坑了,又重新做了个 Gank 客户端,因为之前那个代码写得太烂了,这次有好好的考虑了下架构之类的事,代码应该会更容易读懂了点了,吧.哈哈,再次欢迎来 star ...

  7. 背水一战 Windows 10 (64) - 控件(WebView): 加载指定 HttpMethod 的请求, 自定义请求的 http header, app 与 js 的交互

    [源码下载] 背水一战 Windows 10 (64) - 控件(WebView): 加载指定 HttpMethod 的请求, 自定义请求的 http header, app 与 js 的交互 作者: ...

  8. 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图

    [源码下载] 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Co ...

  9. Android 高清加载巨图方案 拒绝压缩图片

    Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49300989: 本文出自:[张 ...

  10. Android 图片异步加载的体会,SoftReference已经不再适用

      在网络上搜索Android图片异步加载的相关文章,目前大部分提到的解决方案,都是采用Map<String, SoftReference<Drawable>>  这样软引用的 ...

随机推荐

  1. 揭秘C语言的心脏:深入探索指针与数组的奥秘

    欢迎大家来到贝蒂大讲堂 养成好习惯,先赞后看哦~ 所属专栏:C语言学习 贝蒂的主页:Betty's blog 1. strlen()和sizeof的区别 名称 区别 sizeof 1. sizeof是 ...

  2. Delphi dbgrideh颜色设置

    DBGridEh中分行分列.单元格的颜色设置(1)分行不同颜色设置:在DBGridEh1DrawColumnCell中写: if ADOQuery1.RecNo mod 2=0 then begin ...

  3. [Java]《On Java》阅读记录之 -- 可变参数重载问题

    <On Java>阅读记录之 -- 可变参数重载问题 有下面一段代码: public class OverloadingVarargs2 { static void f(float i , ...

  4. Yum安装的Nginx安装新模块解决办法

    Nginx版本1.22 Yum安装 Step1 去官网下载对应版本的源码包 Nginx源码包官网下载地址 Step2 上传到服务器 tar -xf nginx-1.22.1.tar.gz cd ngi ...

  5. Codeforces Round #887 (Div. 2) A-D

    比赛链接 A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; int a[507]; bool ...

  6. NC52867 Highway

    题目链接 题目 题目描述 In ICPCCamp there were n towns conveniently numbered with \(1, 2, \dots, n\) connected ...

  7. NC20650 可爱の星空

    题目链接 题目 题目描述 "当你看向她时,有细碎星辰落入你的眼睛,真好."--小可爱 在一个繁星闪烁的夜晚,卿念和清宇一起躺在郊外的草地上,仰望星空. 星语心愿,他们,想把这片星空 ...

  8. 普冉PY32系列(十一) 基于PY32F002A的6+1通道遥控小车II - 控制篇

    目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...

  9. 欧拉公式 Euler's Formula

    欧拉公式是数学中最重要的公式之一, 它涉及到了复数, 无理数, 三角函数, 简单优美 \(e^{i\theta} = cos(\theta) + isin(\theta)\) 欧拉公式代表的含义并不是 ...

  10. keras建模的3种方式——序列模型、函数模型、子类模型

    1 前言 keras是Google公司于2016年发布的以tensorflow为后端的用于深度学习网络训练的高阶API,因接口设计非常人性化,深受程序员的喜爱. keras建模有3种实现方式--序列模 ...