webview白屏_uniapp webview白屏 - CSDN
精华内容
参与话题
  • Webview加载界面白屏解决方法总结

    万次阅读 热门讨论 2017-10-19 11:25:30
    总结android中webview加载出现界面白屏,需要杀掉进程重新加载的情况的解决方法。

    webview嵌套HTML5界面白屏问题


    问题介绍:在Android开发中,经常会遇到开发原生和H5嵌套的APP,而在android中加载H5界面时通常使用webview控件进行嵌套,而此时就会出现一些很神奇的事情——界面白屏。

    如果遇到这种情况,那就只能退出程序,干掉进程,然后重新进入app,重新加载界面,目前还没有找到其他的解决方法。

    经过多方面的研究,请教大神,总结了以下几点来减小这种白屏情况出现的概率。


    解决方案

    1.Android中加载网页时界面会有缓存,通过清除webview的缓存,让app每次进入该H5界面时都重新加载:

    // 清缓存和记录,缓存引起的白屏
    mWebView.clearCache(true);
    mWebView.clearHistory();
    
    mWebView.requestFocus();
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setDatabaseEnabled(true);
    // 缓存白屏
    String appCachePath = getApplicationContext().getCacheDir()
    			.getAbsolutePath() + "/webcache";
    // 设置 Application Caches 缓存目录
    webSettings.setAppCachePath(appCachePath);
    webSettings.setDatabasePath(appCachePath);


    2.可以通过setAppCacheEnabled方法来控制webview是否有缓存:

    // 应用可以有缓存 true false 没有缓存
    webSettings.setAppCacheEnabled(false);


    3.webview加载H5界面时,H5中的一些控件标签可能使用后android中不支持,可以使用setDomStorageEnabled方法来处理:

    // 解决对某些标签的不支持出现白屏
    webSettings.setDomStorageEnabled(true);


    4.在不同android版本上出现白屏的情况:

    mWebView.setWebViewClient(new WebViewClient() {
    			@Override
    			public void onPageStarted(WebView view, String url, Bitmap favicon) {
    				super.onPageStarted(view, url, favicon);
    			}
    
    			@Override
    			public void onPageFinished(WebView view, String url) {
    				super.onPageFinished(view, url);
    			}
    
    			@Override
    			public boolean shouldOverrideUrlLoading(WebView view, String url) {
    				// 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不另跳浏览器
    				// 在2.3上面不加这句话,可以加载出页面,在4.0上面必须要加入,不然出现白屏
    				if (url.startsWith("http://") || url.startsWith("https://")) {
    					view.loadUrl(url);
    					mWebView.stopLoading();
    					return true;
    				}
    				return false;
    			}
    
    			@Override
    			public void onReceivedError(WebView view, int errorCode,
    					String description, String failingUrl) {
    				super.onReceivedError(view, errorCode, description, failingUrl);
    			}
    		});

    5.Webview的控件布局时设置:
        <WebView
            android:id="@+id/web"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layerType="software"
            android:scrollbars="none" />

    6.通过android系统的加速器来配置:主要在androidmanifest.xml中设置。

    //开启硬件加速 app支持硬件加速:
    application下:< application    android:hardwareAccelerated="true" ...>   
        <application
            android:hardwareAccelerated="true"
            android:icon="@drawable/icon"
            android:label="@string/app_name" >
    

    在使用webview的界面中关闭硬件加速:
    activity界面注册时:<activity    android:hardwareAccelerated="false" ..>
            <activity
                android:name="com.project.activity.MainActivity"
                android:hardwareAccelerated="false" />


    总结:webview白屏是一件很神奇的事情,目前我还没有找到最优的解决办法,只能通过这些方面来减小白屏情况出现的概率,以后还得继续研究。
               学无止尽!!!  





    展开全文
  • 首先在WebViewClient中添加... public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { // 不要使用super,否则有些手机访问不了,因为包含了一条 handler.cancel() // super.onR

    首先在WebViewClient中添加

    @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            // 不要使用super,否则有些手机访问不了,因为包含了一条 handler.cancel()
            // super.onReceivedSslError(view, handler, error);
            // 接受所有网站的证书,忽略SSL错误,执行访问网页
            handler.proceed();
        }

    其次注意对WebSettings授权

            webSettings.setJavaScriptEnabled(true);
            webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
            webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
            webSettings.setDomStorageEnabled(true);
            webSettings.setDatabaseEnabled(true);
            webSettings.setAppCacheEnabled(true);
            webSettings.setAllowFileAccess(true);
            webSettings.setSavePassword(true);
            webSettings.setSupportZoom(true);
            webSettings.setBuiltInZoomControls(true);
            webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
            webSettings.setUseWideViewPort(true);


    展开全文
  • 解决webview加载网页出现白屏的问题

    万次阅读 2013-10-13 11:52:01
    最近在使用WebView进行网页内容显示时,如果网络很慢,例如2G网络,加载网页会需要很长时间,在加载过程中,WebView一直显示白屏,体验不是很好。经过修改可以使用以下几个方案解决WebView加载过程中,出现白屏的...

    最近在使用WebView进行网页内容显示时,如果网络很慢,例如2G网络,加载网页会需要很长时间,在加载过程中,WebView一直显示白屏,体验不是很好。经过修改可以使用以下几个方案解决WebView加载过程中,出现白屏的问题。

    1,修改WebView的背景,修改颜色值或者添加一个加载中的图片

    webView.setBackgroundResource(R.drawable.bgblack);
    如果设置WebView的背景图片,设置背景之前一定要设置setBackgroundColor为透明,否则看不到背景图片。代码如下:

    webView.setBackgroundColor(android.R.color.transparent);
    webView.setBackgroundResource(R.drawable.bgpic);
    

    2,自定义加载动画。设置webviewWebViewClient,重写里面的方法,在onPageStarted加载动画或图片,在onPageFinished移除动画或图片

    mWebView.setWebViewClient(new WebViewClient() {
                @Override
                public void onReceivedError(WebView view, int errorCode,
                        String description, String failingUrl) {
                         //网页加载失败的处理,一般是出错图片,跳转到出错处理页面
                 super.onReceivedError(view, errorCode, description,failingUrl);
                }
    
                @Override
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);
    
                    //网页加载结束的处理,可以停止动画
    
               }          
                @Override           
                public void onPageStarted(WebView view, String url, Bitmap favicon) {
    
                         super.onPageFinished(view, url);
    
                     //网页加载开始的处理,开始动画
                }
            });

    3,方法2中会出现一个问题,就是当页面加载全部完成的时候,动画才会消失,有的页面加载到10%已经有内容显示,但是加载动画还在,效果不是很好,如果想解
    决页面出现内容就让加载动画消失,设置WebView的另外一个参数

         mWebView.setPictureListener(new PictureListener() {
                @Override
                public void onNewPicture(WebView view, Picture picture) {
                    //移除动画或者删除背景图片
                }
            });

    这个方法的含义就是webview进行页面绘制的时候,只要有内容显示就会被这个回调PictureListener的onNewPicture方法。

    原创文章,转载请标注文章来源:http://blog.csdn.net/songshizhuyuan/article/details/12676853


    展开全文
  • android webview 加载白屏问题

    千次阅读 2018-03-07 17:19:49
    如果重写了shouldOverrideUrlLoading(WebView view, String url)或者shouldOverrideUrlLoading(WebView view, WebResourceRequest request)不要忘记添加 webView.loadUrl(url);如下图:

    如果重写了

    shouldOverrideUrlLoading(WebView view, String url)

    或者

    shouldOverrideUrlLoading(WebView view, WebResourceRequest request)

    不要忘记添加 webView.loadUrl(url);

    如下图:




    展开全文
  • Android WebView加载白屏解决方案

    万次阅读 2017-01-19 14:26:02
    android:id="@+id/web_view"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:layerType="hardware"/> ...mView = (WebView) findViewById(R.id.web_v
  • webView显示白屏的问题

    千次阅读 2019-06-14 19:08:19
    webView加载酷狗音乐或者带视频的一些较大网页时显示白屏的问题修复记录: String mp4Path = "http://yoo.qq.com/m/video.htmlid=w003129iefx&hgptag=txvideo12&vuid24=R1SphDgpxeZ%2FR4p0L5%2Fleg%3D%3D&...
  • webview嵌套HTML5界面白屏问题

    千次阅读 2019-01-07 20:09:46
    问题介绍:在Android开发中,经常会遇到开发原生和H5嵌套的APP,而在android中加载H5界面时通常使用webview控件进行嵌套,而此时就会出现一些很神奇的事情——界面白屏。 如果遇到这种情况,那就只能退出程序,干掉...
  • 在android 4.4-6.0运行时无问题,但是一到7.0以上就是白屏 在度娘和谷哥搜了,解决方法无外乎这两种 http://blog.csdn.net/qwe0754444/article/details/64918868 http://www.jianshu.com/p/07b781795b78 但是我...
  • http://blog.csdn.net/garybook/article/details/8205974,没怎么细看,添加上属性后效果得以实现,等忙完后再细看时怎么回事吧。
  • WebView 加载有时白屏

    2016-06-28 00:50:02
    执行过 onPageFinished后的很长时间里都是白屏。 已经在webview下添加了 android:layerType="software" ,还是不起作用,有没有更好的办法?
  • webview加载网页出现白屏

    千次阅读 2016-08-09 11:16:18
    webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { webView.loadUrl(url); //在2.3上面不加这句话,可以加载出页面,在4.0上面...
  • 如有什么写的不足或是错误之处,欢迎给位的指出,希望可以向大家多多学习!
  • Android加载WebView显示会白屏一段时间

    千次阅读 2018-04-13 15:12:30
    开发时遇见webview加载本地html5界面时,总会出现5S左右的白屏时间。百度多种方法,以下方法可缩短白屏时间。通过设置xml布局属性,即可解决WebView的layerType属性有三个值。1.none,默认值,2.software,软件加速...
  • WebView侧滑出现白屏,去掉硬件加速: 在WebView的xml属性中设置android:layerType=software WebView页面加载闪白屏,设置背景透明: 在代码中设置背景透明setBackgroundColor(0); 注:4.0及以上要关闭...
  • 跳转webview白屏(黑屏)问题解决

    千次阅读 2015-07-15 12:32:06
    原因分析:由activity跳转到WebView时会发生一段白屏(黑屏)现象,是由于此时未完全获得网页数据,导致webview暂时为空,其时间长短依网络状况而定。 解决方法: webview.setWebViewClient( new WebViewClient()...
  • android h5 js 混合开发解决webview加载白屏,不加载网页的问题(硬件加速网页渲染,优化体验)
  • Android webView加载html页面不显示(显示白屏) cookie编码问题 webview加载不出来
  • 如图,测试手机型号是:三星SCH-I829,android版本:4.1.2,程序中只有一个Activity,内包含4个Fragment,加载Fragment的时候切换url,当点击切换Fragment多次后,出现白屏页面。错误信息:Uncaught TypeError: ...
  • 在Flutter中使用webview_flutter插件显示网页的时候在iOS无法显示,并且报错: Trying to embed a platform view but the PrerollContext does not support embedding 解决办法:在info.list添加: <dict> ...
  • 简单粗暴一点,监听webview,加载时先隐藏,等webview加载结束时,再显示出来,即可解决!
1 2 3 4 5 ... 20
收藏数 2,502
精华内容 1,000
关键字:

webview白屏