Reputation: 5698
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
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
Reputation: 1758
Adjust your container view background and then set
webView.setBackgroundColor(Color.TRANSPARENT);
Upvotes: 1
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
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
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