安卓WebView如何保持在应用内部浏览网页

24

我在我的Android应用程序中有一个WebView,但是当有人在该网站上导航时,它会在新窗口中打开,我想让它保持在WebView内。有没有一种简单的方法可以实现这一点?这里是我活动中的代码:

super.onCreate(savedInstanceState);
    setContentView(R.layout.shop);
    WebView webview;
    webview = (WebView) findViewById(R.id.webview);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.loadUrl("http://www.google.co.uk");

阅读以下内容,几乎涵盖了有关Android WebView的所有内容:https://androidride.com/android-webview-example-tutorial-kotlin-java-download-source-code/ - Athira Reddy
3个回答

43

您需要创建一个WebViewClient

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

然后像这样将其设置到您的WebView中:

webview.setWebViewClient(new myWebViewClient());

shouldOverrideUrlLoading 在 Android N 上已被弃用。请查看 https://dev59.com/h1oV5IYBdhLWcg3wPs4Y - GabrielOshiro

33

或者你可以这样做,而不需要创建一个新的类:

myWebView.setWebViewClient(new WebViewClient());

它对我有效。


不起作用。点击那个按钮时没有任何反应。 - Abhi

1
webview.setWebViewClient(new WebViewClient());

如果您想自定义,则应覆盖shouldOverrideUrlLoading(WebView视图,String url)。但它在API 24中已被弃用。您可以使用public boolean shouldOverrideUrlLoading(WebView视图,WebResourceRequest请求)。实际上,两者都需要返回false。

{{link1:Android WebView示例}}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接