Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android webview留在应用程序中_Java_Android_Webview_Android Widget - Fatal编程技术网

Java android webview留在应用程序中

Java android webview留在应用程序中,java,android,webview,android-widget,Java,Android,Webview,Android Widget,我的android应用程序中有一个webview,但当有人在网站上导航时,它会在一个新窗口中打开,我希望它保持在webview中。。有没有一种方法可以轻松做到这一点?以下是我的活动中的代码: super.onCreate(savedInstanceState); setContentView(R.layout.shop); WebView webview; webview = (WebView) findViewById(R.id.webview); webvie

我的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");

您必须创建一个
WebViewClient

public class myWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
然后将其设置为您的
WebView
,如下所示:

webview.setWebViewClient(new myWebViewClient());

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

myWebView.setWebViewClient(new WebViewClient());
它对我有用

webview.setWebViewClient(new WebViewClient());

如果要自定义,则应重写
shouldOverrideUrlLoading(WebView视图,字符串url)
。但它在API 24中被弃用。您可以使用公共布尔shouldOverrideUrlLoading(WebView视图、WebResourceRequest请求)。实际上,它们都需要返回false


Android N上不推荐使用可能重复的
shouldOverrideUrloading
。请检查是否不工作。点击那个按钮时什么也没发生这对我来说很有效