logo资料库

Android中替换WebView加载网页失败时的页面.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
Android中替换中替换WebView加载网页失败时的页面 加载网页失败时的页面 主要介绍了Android中替换WebView加载网页失败时的页面,非常不错,具有参考借鉴价值,需要的朋友参考下 吧 我们用webView去请求一个网页链接的时候,如果请求网页失败或无网络的情况下,它会返回给我们这样一个页面,如下图所 示:
上面这个页面就是系统自带的页面,你觉得是不是很丑?反正小编本人觉得非常丑,很难看,于是乎小编就在想能不能自定义 一个页面,当数据请求失败时让系统来加载我们自定义好的页面?上网查了很多资料,都没有关于这个问题的解决方法(反正 我是没有找到),经过小编的不断琢磨,今天终于实现了这个功能。以下就是本人自定义实现的数据加载失败时的页面:
这样看起来是不是觉得很高大尚。这和我们真正拿到数据接口做出来的效果完全一样。对于用户来说这样的体验也是很完美 的。 **全部代码: 一、主代码:** 一、主代码: MainActivity.Java package com.example.webview; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.LinearLayout; import android.widget.RelativeLayout; public class MainActivity extends AppCompatActivity { private WebView webview; private WebSettings mWebSettings; private View mErrorView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webview = (WebView) findViewById(R.id.main_webview); setUpView(); } private void setUpView() { //加载需要显示的网页 webview.loadUrl("http://www.baidu.com/"); //设置WebView属性,能够执行Javascript脚本 webview.getSettings().setJavaScriptEnabled(true); mWebSettings = webview.getSettings(); mWebSettings.setJavaScriptEnabled(true); //允许加载javascript mWebSettings.setSupportZoom(true); //允许缩放 mWebSettings.setBuiltInZoomControls(true); //原网页基础上缩放 mWebSettings.setUseWideViewPort(true); //任意比例缩放 webview.setWebViewClient(webClient); //设置Web视图 } /*** * 设置Web视图的方法 */ WebViewClient webClient = new WebViewClient(){//处理网页加载失败时 public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { showErrorPage();//显示错误页面 }; }; boolean mIsErrorPage; protected void showErrorPage() { LinearLayout webParentView = (LinearLayout)webview.getParent(); initErrorPage();//初始化自定义页面 while (webParentView.getChildCount() > 1) { webParentView.removeViewAt(0); } @SuppressWarnings("deprecation") LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewPager.LayoutParams.FILL_PARENT, ViewPager.LayoutParams.FILL_PARENT); webParentView.addView(mErrorView, 0, lp); mIsErrorPage = true; } /**** * 把系统自身请求失败时的网页隐藏 */ protected void hideErrorPage() { LinearLayout webParentView = (LinearLayout)webview.getParent(); mIsErrorPage = false; while (webParentView.getChildCount() > 1) { webParentView.removeViewAt(0); } } /*** * 显示加载失败时自定义的网页 */ protected void initErrorPage() { if (mErrorView == null) { mErrorView = View.inflate(this, R.layout.activity_error, null); RelativeLayout layout = (RelativeLayout)mErrorView.findViewById(R.id.online_error_btn_retry); layout.setOnClickListener(new View.OnClickListener() { public void onClick(View v) {
webview.reload(); } }); mErrorView.setOnClickListener(null); } } } 二、二、XML布局代码: 布局代码: 1.activity_main.xml 2.activity_error.xml 以上所述是小编给大家介绍的Android中替换WebView加载网页失败时的页面,希望对大家有所帮助,如果大家有任何疑问请 给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
分享到:
收藏