Android Webview Replace Error Page
Contents |
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies android webview custom font of this site About Us Learn more about Stack Overflow the company Business
Android Custom Webview Class
Learn more about hiring developers or posting ads with us Stack Overflow Questions Jobs Documentation Tags Users Badges android webview example Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute:
Android Webview Javascript
Sign up How to edit or create custom error page for WebView? up vote 15 down vote favorite 5 I have created a WebView layout, which is used to access a specific website, however it would be useful to edit or create a custom "Web page not available" resource when a handset doesn't have a network connection or the page times out. I android webview xml know it's possible because if you open the app "Wikidroid" while a handset is in Airplane mode you receive "Article not available" error page instead of the standard Android "Web page not available" error page. I have search high and low on the internet and haven't come up with any online resources which address this request. Any and all help is much appreciated. Thanks in advance. android android-webview share|improve this question edited Jul 17 '15 at 5:01 Gopal Singh Sirvi 2,11541536 asked Nov 4 '10 at 21:00 Sid 6x 78115 add a comment| 2 Answers 2 active oldest votes up vote 18 down vote accepted To determine when the device has a network connection, request the permission
here for a quick overview of the site Help Center
Android Webview Chrome
Detailed answers to any questions you might have Meta Discuss
Android Webview User Agent
the workings and policies of this site About Us Learn more about Stack Overflow the android webview update company Business Learn more about hiring developers or posting ads with us Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss http://stackoverflow.com/questions/4101331/how-to-edit-or-create-custom-error-page-for-webview Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute: Sign up Android webview custom error page up vote 0 down vote favorite I am creating application that use WebView to http://stackoverflow.com/questions/36284186/android-webview-custom-error-page access a online website. I am stuck where I have to add code to check availability of page. public class SpartanWeb extends Activity { WebView mWebView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Adds Progrss bar Support this.getWindow().requestFeature(Window.FEATURE_PROGRESS); setContentView(R.layout.main); // Makes Progress bar Visible getWindow().setFeatureInt(Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); // Get Web view mWebView = (WebView) findViewById(R.id.webView1); WebSettings websettings = mWebView.getSettings(); websettings.setJavaScriptEnabled(true); mWebView.stopLoading(); mWebView.clearCache(true); mWebView.loadUrl("http://google.com"); mWebView.setHorizontalScrollBarEnabled(false); mWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); mWebView.setWebViewClient(new WebViewClient()); mWebView.setDownloadListener(new DownloadListener() { public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); startActivity(intent); } }); // onProgressChanged final Activity MyActivity = this; mWebView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { // bar disappear after URL is loaded, and changes string to // Loading... MyActivity.setTitle("Loading..."); MyActivity.setProgress(progress * 100); // Make the bar // disappear after URL
worked as-is (mainly, I had issues with the back-stack after implementing the more common suggestions), I came up with the following monstrosity. Use at your own peril: @Override public void onReceivedError(WebView webView, int errorCode, String description, String failingUrl) { try { webView.stopLoading(); } catch (Exception e) { } try { webView.clearView(); } catch (Exception e) { } if (webView.canGoBack()) { webView.goBack(); } webView.loadUrl("file:///android_asset/path/to/your/missing-page-template.html"); super.onReceivedError(webView, errorCode, description, failingUrl); } 12345678910111213141516 @Overridepublic void onReceivedError(WebView webView, int errorCode, String description, String failingUrl) { try { webView.stopLoading(); } catch (Exception e) { } try { webView.clearView(); } catch (Exception e) { } if (webView.canGoBack()) { webView.goBack(); } webView.loadUrl("file:///android_asset/path/to/your/missing-page-template.html"); super.onReceivedError(webView, errorCode, description, failingUrl);} the above is an overriden method of a new WebViewClient… e.g., private WebViewClient client = new WebViewClient() { // ... override whatever, including the onReceivedError method above } WebView webView = new WebView(context); webView.setWebViewClient(client); 12345 private WebViewClient client = new WebViewClient() {// ... override whatever, including the onReceivedError method above}WebView webView = new WebView(context);webView.setWebViewClient(client); Arun says: April 1, 2015 at 2:57 am You could avoid all those extra handling(stopLoading, clearView, goBack) by using webView.loadDataWithBaseURL which helps to overwrite the history. Reply moagrius says: April 1, 2015 at 7:41 am 404 is unlikely when working with pages constructed internally - this post details how to avoid the default 404 page shown when a page can't be loaded (almost certainly an external page). Thanks for posting. Reply Martin says: March 31, 2014 at 8:02 am Doesn't work on Android 4.1.2 Reply moagrius says: March 31, 2014 at 10:39 am What does "not work" mean exactly? Reply netdragon says: May 8, 2013 at 9:42 pm Doesn't work - Android 4.2 Reply gabriel says: November 8, 2012 at 6:57 am worked great! Reply moagrius says: November 8, 2012 at 8:17 pm HTH Reply Michael says: October 5, 2012 at 10:17 am SO F*** PERFECT! Thankyou very much!!! Reply moagrius says: October 5, 2012 at 11:21 am YW! Reply Tomer says: August 24, 2012 at 1:2