Android开发 WebView ERR_CACHE_MISS Cannot call determinedVisibility()
Posted Android小屋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android开发 WebView ERR_CACHE_MISS Cannot call determinedVisibility()相关的知识,希望对你有一定的参考价值。
WebSettings webSettings=mWebView.getSettings();
webSettings.setSavePassword(false);//是否自动保存密码
webSettings.setSaveFormData(false);//表格数据
webSettings.setAppCacheEnabled(true);//缓存
if (Build.VERSION.SDK_INT >= 19)
mWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//缓存
webSettings.setjavascriptEnabled(true); //支持JavaScript
webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);//支持缩放
webSettings.setAllowFileAccess(true); // 允许访问文件
webSettings.supportMultipleWindows();//多窗口
webSettings.setLoadsImagesAutomatically(true);//自动加载图片
/**
* 用WebView显示图片,可使用这个参数 设置网页布局类型: 1、LayoutAlgorithm.NARROW_COLUMNS :
* 适应内容大小 2、LayoutAlgorithm.SINGLE_COLUMN:适应屏幕,内容将自动缩放
*/
webSettings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
webSettings.setUseWideViewPort(true);//如果setUseWideViewPort( true ) , 它将WebView加载和该网页的元标记内定义的属性。 那么根据定义缩放网页, 在html
webSettings.setLoadWithOverviewMode(true);//setLoadWithOverviewMode( true ) 加载WebView完全缩小
webSettings.setDisplayZoomControls(false);//false 不显示缩放按钮 true 显示
mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);//提高渲染等级
mWebView.getSettings().setBlockNetworkImage(true);//阻塞,先不加载图片(阻止图片的网络数据)
mWebView.getSettings().setBlockNetworkImage(false);//解除阻止
mWebView.getSettings().setBlockNetworkLoads(false);//默认false,设置为true,网页上面报net::ERR_CACHE_MISS错误 log Cannot call determinedVisibility() - never saw a aconnetion for the pid:xxx(这个项目中我的错误是这样的)
mWebView.requestFocusFromTouch();//支持手势焦点,如果不设置,可能会导致网页上面输入法弹不出来
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.requestFocus();//设置是否获得焦点。若有requestFocus()被调用时,
//后者优先处理。注意在表单中想设置某一个如EditText获取焦点,光设置这个是不行的,需要将这个EditText前面的focusable都设置为false才行。在Touch模式下获取焦点需要设置focusableInTouchMode为true。
/*
*web.setInitialScale(25); 25%为最小缩放等级
* 解释: 里面的数字代表缩放等级
web.setInitialScale(100); 代表不缩放。
什么是不缩放? 比如你要加载的网页中有图片的宽度是 500px ,如果你的手机分辨率(屏幕宽度) 是1000的话,那么整个图片只占一半的屏幕。 其他的字体都是按照标准展示
如果这个时候如果你设置 web.setInitialScale(200) ,代表放大一倍,真个网页都会放大一倍,这个时候图片正好展示整个屏幕宽度,另外网页的字体也会放大一倍
如果这个时候如果你设置 web.setInitialScale(50) ,代表缩小一倍,这个时候图片正好展示只占屏幕的四分之一,另外网页的字体也会同时变小*/
mWebView.setInitialScale(25);
mWebView.setBackgroundColor(0);
mWebView.setWebChromeClient(new WebChromeClient()
/**
* 网页加载进度条 顶部 横向
*/
@Override
public void onProgressChanged(WebView view, int newProgress)
if(newProgress<100||newProgress>=0)
pbLoadLine.setVisibility(View.VISIBLE);
pbLoadLine.setProgress(newProgress);
super.onProgressChanged(view, newProgress);
);
// 设置超链接使用WebView加载,不使用系统本身的浏览器
mWebView.setWebViewClient(new WebViewClient()
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
// 此处URL加载的是Web网页上的超链接,切勿修改成WebView的请求地址
mWebView.loadUrl(url);
return true;
@Override
public void onPageStarted(final WebView view, String url, Bitmap favicon)
super.onPageStarted(view, url, favicon);
//开始加载网页时处理,如:显示“加载提示”的加载对话框
if(view!=null)
ivExit.setImageResource(R.drawable.ic_stop_for_url_edit_normal);
ivExit.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
view.stopLoading();//停止加载
pbLoadLine.setVisibility(View.GONE);//隐藏进度条
);
@Override
public void onPageFinished(WebView view, String url)
super.onPageFinished(view, url);
//网页加载完成时处理 如:让“加载对话框”消失
if(view!=null)
ivExit.setImageResource(R.drawable.icon_forward);
pbLoadLine.setVisibility(View.GONE);//隐藏进度条
ivExit.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
mWebView.goBack();
);
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl)
if (NetUtil.isConnectivity(mContext))
ToastUtils.DefaultToast(mContext, getString(R.string.toast_webInternet_data_error));
// finish();
else
ToastUtils.DefaultToast(mContext, getString(R.string.toast_webInternet_no_internet));
// finish();
public void onReceivedSslError(WebView view,
SslErrorHandler handler, SslError error) // 重写此方法可以让webview处理https请求
handler.proceed();
);
mWebView.loadUrl("http://www.baidu.com");
以上是关于Android开发 WebView ERR_CACHE_MISS Cannot call determinedVisibility()的主要内容,如果未能解决你的问题,请参考以下文章