Webview Inside Fragment:如何禁用在浏览器中打开?

时间:2014-06-05 05:52:51

标签: android android-fragments webview

我有这个代码,它可以正常打开一个网页:

package com.example.fragmenttabs;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.app.Fragment;

public class FragmentTab2 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragmenttab2, container, false);

        String url = "http://example.com";
        WebView view = (WebView)rootView.findViewById(R.id.webView2);        
        view.getSettings().setJavaScriptEnabled(true);          
        view.loadUrl(url);

        return rootView;
    }

}

但不幸的是,当我点击该网页视图中的链接时,它会打开Goog​​le Chrome。如何禁用此行为?我想在同一个webview中打开它。未在Google Chrome中打开。谢谢。

3 个答案:

答案 0 :(得分:9)

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

 webView.setWebViewClient(new WebViewClient() {

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

答案 1 :(得分:4)

要在webview内打开webivew链接,请使用setWebViewClient作为

webView.setWebViewClient(new WebViewClient() {

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

文档中所述,如果主机应用程序想要离开当前的WebView并处理url本身,则返回 true ,否则返回 false

有关详细信息,请参阅Webview shouldOverrideUrlLoading

答案 2 :(得分:2)

实现WebViewClient(),如:

 WebView _open;
 WebSettings webSettings = _open.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setBuiltInZoomControls(true);
        _open.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return super.shouldOverrideUrlLoading(view, url);
            }

        });
        _openpaypal.loadUrl(url);