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");
4

3 回答 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());
于 2012-11-24T16:16:00.167 回答
33

或者您可以这样做,而无需创建新类:

myWebView.setWebViewClient(new WebViewClient());

这个对我有用。

于 2013-08-25T21:44:16.307 回答
1
webview.setWebViewClient(new WebViewClient());

如果要自定义,则应覆盖shouldOverrideUrlLoading (WebView view, String url). 但它在 API 24 中已弃用。您可以使用public boolean shouldOverrideUrlLoading (WebView view,WebResourceRequest request). 实际上他们都需要返回false。

Android WebView 示例

于 2019-05-17T02:34:09.043 回答