android中的webView在web中打开网站而不是webview

时间:2015-03-21 22:55:38

标签: android webview

当我运行此代码时,“google.com”会在网络应用程序中打开(对于exogle的谷歌浏览器),而不是在对话框中的webView中。 它可以与一些网址一起使用。 为什么呢?

    final Dialog dialog=new Dialog(this.activity,android.R.style.Theme_Black_NoTitleBar_Fullscreen);

    dialog.setContentView(R.layout.full_page_ad_between_chapters);
    WebView webView = (WebView) dialog.findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl("http://google.com");

R.layout.full_page_ad_between_chapters:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="350dp"
    android:layout_height="1000dp"
    android:layout_margin="5dp"
    android:orientation="vertical" >


    <Button
        android:id="@+id/fullPageAdBetweenChaptersClose"
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:layout_gravity="center"
        android:text="סגור" />

        <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


</LinearLayout>

1 个答案:

答案 0 :(得分:0)

您需要覆盖shouldOverrideUrlLoading()上的方法WebViewClient

WebView webView = (WebView) dialog.findViewById(R.id.webView1);
webView.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // check if we want to open the url into the WebView
        if (iWantToOpenTheUrlIntoTheWebView(url)) {
            return false;
        }
        // let the system handle the url outside of the app
        return true;
    }
});