Android应用程序开发-WebView不工作

Android应用程序开发-WebView不工作,android,Android,Android允许使用WebView在应用程序中显示URL的内容。 然而,出于某种原因,它对我不起作用。以下是Iam使用的代码: 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

Android允许使用WebView在应用程序中显示URL的内容。 然而,出于某种原因,它对我不起作用。以下是Iam使用的代码:

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

如果未添加,请将其添加到android清单中:

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

这一行必须位于AndroidManifest.xml文件的元素内。

很明显

您正在实现一个新的
WebViewClient
,其中覆盖了
shouldOverrideUrlLoading
方法。对于正在加载的每个url,都会调用此方法。你在那里干什么?您正在返回true(这意味着加载应该被覆盖),然后开始加载相同的url!因此,url加载将永远不会发生

只需删除该行:

mWebView.setWebViewClient(new NewsClient());
添加此行:
mWebView.setWebViewClient(NewsClient())


但是
shouldOverrideUrlLoading
应该
返回false

您的代码在我的android设备4.2.2中工作,您的实现没有问题,您只需要像这样重写您的方法:

   @Override
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
        System.out.println("URL: " + url);
        view.loadUrl(url);
        return true;
    }

这种方法

我认为你可以简单地在你的WebView中加载一个url,在你的应用程序中显示网站

webView.loadUrl(url);
许可也是最重要的

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


有关更多详细信息:

您是否在android清单文件中授予了Internet访问权限?也许您从这里得到了解决方案:出现了一个小问题。。提交第一页所示的表格时。。它会在浏览器中打开下一页,而不是应用程序。。我该怎么处理呢?你应该返回false。你能解释一下为什么这个代码会回答这个问题吗?代码唯一的答案是,因为他们不教解决方案。