2

当我单击 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);
    }
}
4

2 回答 2

8

默认行为是,当您单击链接时,它将要求 ActivityManager 找到合适的应用程序来处理该链接。您可以像这样覆盖此行为(这将强制当前 WebView 自行加载新的 url):

    mWebView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            return false;
        }
    });
于 2012-07-24T17:24:21.433 回答
2

这是你要找的吗?:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(intent);
于 2012-07-24T15:22:50.203 回答