在WebView中更改URL而不是打开浏览器

时间:2012-07-24 15:20:55

标签: android android-fragments android-webview

当我点击WebView中的链接时,Android打开浏览器而不是在WebView中更改URL。

这是我的片段,其中WebView是(R.layout.webview仅包含WebView):

package com.example.fragments;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;

public class EuDetailsFragment extends Fragment {
    private WebView viewer;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        viewer = (WebView) inflater.inflate(R.layout.webview, container, false);

        return viewer;
    }

    public void updateUrl(String newUrl) {
        Log.d("EuDetailsFragment", "Updating url...");
        WebView detailsView = (WebView) getView().findViewById(R.id.detailsView);
        detailsView.loadUrl(newUrl);
    }
}

2 个答案:

答案 0 :(得分:8)

默认行为是,当您单击链接时,它将要求ActivityManager找到适当的应用程序来处理链接。您可以覆盖此行为(这将强制当前WebView本身加载新的URL),如下所示:

    mWebView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            return false;
        }
    });

答案 1 :(得分:2)

这就是你要找的东西吗?:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(intent);