Android webview在默认浏览器中打开页面而不是我的webview

时间:2014-06-04 10:41:20

标签: android browser webview

我正在尝试两天找到一个代码来处理我的工作..我正在学习本教程:http://techvalleyprojects.blogspot.ro/2011_08_01_archive.html

我遇到以下问题:我想在我的应用中打开的网页未加载到我的网页浏览器中,而是在默认浏览器中打开。如何修改我的代码,以便在webview中打开所有链接。我需要一个简单的解决方案,因为我对Android很新。

谢谢。

package com.example.name;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;

public class MainActivity extends Activity {
WebView browser;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // find the WebView by name in the main.xml of step 2
        browser=(WebView)findViewById(R.id.wvwMain);

        // Enable javascript
        browser.getSettings().setJavaScriptEnabled(true);  

        // Set WebView client
        browser.setWebChromeClient(new WebChromeClient());

        // Load the webpage
        browser.loadUrl("http://news.google.com/");

    }
}

2 个答案:

答案 0 :(得分:11)

您需要像这样实施setWebViewClient(....)

webView.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
                }
        });

更新

让您的活动如此

public class MainActivity extends Activity {
WebView browser;

@Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // find the WebView by name in the main.xml of step 2
    browser=(WebView)findViewById(R.id.wvwMain);

    // Enable javascript
    browser.getSettings().setJavaScriptEnabled(true);  

    // Set WebView client
    browser.setWebChromeClient(new WebChromeClient());

    browser.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
                }
        });
     // Load the webpage
    browser.loadUrl("http://news.google.com/");
   }
}

答案 1 :(得分:0)

添加此setContentView(browser);代替setContentView(R.layout.activity_main);,但在方法的最后添加。

编辑:

另外,添加:

   browser.setWebViewClient(new WebViewClient() {
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

            }
        });