WebView is not working

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;
        }
    }
}

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 sould 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());

add this in your android manifest if not added:

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

this line must be inside the <manifest> element of your AndroidManifest.xml file.


Add this line: mWebView.setWebViewClient(new NewsClient());

But shouldOverrideUrlLoading should return false .

链接地址: http://www.djcxy.com/p/26220.html

上一篇: 在应用程序启动时获取例外

下一篇: WebView不起作用