Android App开发 - WebView无法正常工作

时间:2011-03-25 11:04:01

标签: android

Android允许使用 WebView 在应用内显示网址内容。 但是,出于某种原因,它不适合我。以下是我使用的代码:

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

6 个答案:

答案 0 :(得分:4)

很明显!

您正在实施一个新的WebViewClient,其中您将覆盖shouldOverrideUrlLoading方法。为要加载的每个URL调用此方法。那你在做什么?您将返回 true (这意味着应该覆盖加载),然后开始加载相同的网址!因此,网址加载永远不会发生。

只需删除该行:

mWebView.setWebViewClient(new NewsClient());

答案 1 :(得分:0)

如果没有添加,请在你的Android清单中添加:

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

此行必须位于&lt; manifest&gt;内AndroidManifest.xml文件的元素。

答案 2 :(得分:0)

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

shouldOverrideUrlLoading应该return false

答案 3 :(得分:0)

您的代码在我的Android设备4.2.2中运行,您的实现没有问题,您唯一需要做的就是覆盖您的方法:

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

此方法

答案 4 :(得分:0)

我认为您只需在WebView中加载一个网址即可在您的应用中显示网站,如

webView.loadUrl(url);

并且许可也是最重要的

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

了解更多详情:http://androidcoding.in/2016/03/17/android-tutorial-on-webview-for-beginners/

答案 5 :(得分:0)

您正在实现一个新的 WebViewClient,您将在其中覆盖 shouldOverrideUrlLoading 方法。如果您需要更多信息,请访问此处:https://weblearners.blogspot.com/2021/06/how-to-enable-video-image-and-file-upload-in-android-webview-app.html