Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid WebView is blank after network disconnect
    primarykey
    data
    text
    <p>I have a following scenario for webview </p> <pre><code> @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web_view_tutorial); mWebView = (WebView) findViewById(R.id.webView1); mWebView.setWebViewClient(mWebViewClient); mWebView.setInitialScale(0); mWebView.setVerticalScrollBarEnabled(false); mWebView.requestFocusFromTouch(); WebSettings settings = mWebView.getSettings(); settings.setJavaScriptEnabled(true); Button btnGo = (Button) findViewById(R.id.button1); btnGo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String url = "http://www.google.com";// here goes my server url with https://...... for authentication showProgressDialog("Loading"); mWebView.loadUrl(url); } }); } private void showProgressDialog(String title) { if(mProgress == null || !mProgress.isShowing()){ mProgress = ProgressDialog.show(this, title, "Please wait...", true, true, new OnCancelListener() { public void onCancel(DialogInterface pd) { finishActivity(); } }); mProgress.setCanceledOnTouchOutside(false); mProgress.setCancelable(true); } } private void finishActivity() { if(mWebView!=null){ finish(); } } private final WebViewClient mWebViewClient = new WebViewClient() { public void onPageStarted(WebView view, String url, android.graphics.Bitmap favicon) { super.onPageStarted(view, url, favicon); Log.d("test", "page started"); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.d("test", "page should override called"); return super.shouldOverrideUrlLoading(view, url); } @Override public void onPageFinished(WebView view, String url) { if (mIsLoadingSigninPage) { mIsLoadingSigninPage = false; dismissProgressDialog(); } Log.d("test", "page finished"); super.onPageFinished(view, url); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { mIsLoadingSigninPage = false; dismissProgressDialog(); Log.d("test", "page error received"); super.onReceivedError(view, errorCode, description, failingUrl); finishActivity(); } }; private void dismissProgressDialog() { if (mProgress != null &amp;&amp; mProgress.isShowing()) { mProgress.dismiss(); mProgress =null; } } </code></pre> <p>// this is log cat for point 3 below</p> <pre><code> 03-07 07:31:20.977: D/test(1431): page started 03-07 07:31:22.788: D/test(1431): page should override called 03-07 07:31:22.887: D/test(1431): page started 03-07 07:31:24.496: D/test(1431): page finished </code></pre> <p>Ok,</p> <ol> <li>When network is not available I ran this code, webviewclient's onReceivedError get called,</li> <li>If network available and page loading started, and network disconnect, then also onReceivedError get called.</li> <li>But there is a some instance of time,(count 1,2,3 after pressing button and disconnect network with f8 on emulator) mWebView.loadUrl(url) gets called, webViewclient's methods gets called like below </li> </ol> <p>and WebView displays blank white screen, onReceivedError not called. here is logcat</p> <p>and </p> <ol> <li>What is wrong with this code.</li> <li>Why onReceivedError not called. If it does not get called, how to handle this situation</li> <li>How to know webView has not loaded anyting and finish activity</li> </ol>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload