Rendy
Rendy

Reputation: 5698

WebView Display White or Blank page

does anyone know why webview displaying white page? Here is the code

webView = (WebView) this.findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(THE_URL);
webView.setWebViewClient(new WebViewClient());

and this functions is also called:

@Override
public void onPageFinished(WebView view, String url) {
}

am I missing something there? Of course, the error is not from the XML, because the webview only does not display some URL.

Thanks

Upvotes: 18

Views: 29332

Answers (5)

Parisa Baastani
Parisa Baastani

Reputation: 1901

This way worked for me:

    mWebView = (WebView) findViewById(R.id.myWebView);
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDomStorageEnabled(true);
    mWebView.setVerticalScrollBarEnabled(true);
    mWebView.setWebViewClient(new WebViewClient());
    mWebView.getSettings().setLoadWithOverviewMode(true);
    mWebView.getSettings().setUseWideViewPort(true);
    mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    mWebView.setWebChromeClient(new WebChromeClient());
    mWebView.loadUrl(URL);

Upvotes: 1

Arda Kaplan
Arda Kaplan

Reputation: 1758

Adjust your container view background and then set

webView.setBackgroundColor(Color.TRANSPARENT);

Upvotes: 1

Dom
Dom

Reputation: 157

For anyone still having this issue, it seems that the WebViewClient does not warn you if a secure connection via https has failed. This is likely due to an SSL error on the server you are connecting to.

You can try using http instead if the server allows it.

Upvotes: 9

Aerrow
Aerrow

Reputation: 12134

Instead of your activity try this,

main.xml

<!--?xml version="1.0" encoding="utf-8"?-->
<Linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

   <Textview android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="This is the demo of WebView Client" android:textsize="20sp" android:gravity="center_horizontal">
   </Textview>

   <Webview android:id="@+id/webview01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_weight="1">
   </Webview>

   <Imageview android:src="@drawable/ic_launcher" android:layout_height="wrap_content" android:layout_width="fill_parent">      

</Imageview></Linearlayout>

WebViewClientDemoActivity.java

   import android.app.Activity;
    import android.graphics.Bitmap;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;

    /*
     * Demo of creating an application to open any URL inside the application and clicking on any link from that URl
    should not open Native browser but  that URL should open in the same screen.
     */
    public class WebViewClientDemoActivity extends Activity {
        /** Called when the activity is first created. */

        WebView web;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            web = (WebView) findViewById(R.id.webview01);
            web.setWebViewClient(new myWebClient());
            web.getSettings().setJavaScriptEnabled(true);
            web.loadUrl("http://www.google.com");
        }

        public class myWebClient extends WebViewClient
        {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                // TODO Auto-generated method stub
                super.onPageStarted(view, url, favicon);
            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // TODO Auto-generated method stub

                view.loadUrl(url);
                return true;

            }
        }

        // To handle "Back" key press event for WebView to go back to previous screen.
       @Override
       public boolean onKeyDown(int keyCode, KeyEvent event)
      {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
            web.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
       }
    }

In your manifest.xml use these permisions

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Upvotes: 1

Shankar Agarwal
Shankar Agarwal

Reputation: 34765

Refer this link. In your code you are creating two webview clients simultaneously.

mwebview=(WebView)findViewById(R.id.webview);
mwebview.getSettings().setJavaScriptEnabled(true);
mwebview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mwebview.loadUrl(webUrl);
mwebview.setWebChromeClient(new WebChromeClient() );

Upvotes: 2

Related Questions