Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android App development - WebView is not working

Tags:

android

Android allows content of a URL to be displayed within an application using WebView. However, for some reason it's not working for me. Below is the code that Iam using:

package com.news;

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

public class NewsActivity extends Activity {
    WebView mWebView;

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

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.setWebViewClient(new NewsClient());
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setDomStorageEnabled(true);
        mWebView.loadUrl("http://www.androidpeople.com");
    }


    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
            mWebView.goBack();            
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    private class NewsClient extends WebViewClient {

        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            System.out.println("URL: " + url);
            view.loadUrl(url);
            return true;
        }
    }
}
like image 838
Abhishek Jain Avatar asked Mar 25 '11 11:03

Abhishek Jain


1 Answers

It is obvious!

You are implementing a new WebViewClient in which you are overriding shouldOverrideUrlLoading method. This method is called for each url you are loading. And what are you doing there? You are returning true (which means loading should be overriden) and then beginning to load the same url! Thus, the url loading will never occur.

Just delete that line:

mWebView.setWebViewClient(new NewsClient());
like image 82
Olegas Avatar answered Sep 19 '22 16:09

Olegas