2012-11-24 13 views
18

Mam webview w mojej aplikacji na Androida, ale kiedy ktoś nawiguje po witrynie, otwiera się w nowym oknie, chcę, aby pozostała w widoku internetowym ... czy jest sposób, aby to zrobić łatwo ? Oto kod w mojej działalności:Android Webview pozostanie w aplikacji

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"); 
+0

możliwy duplikat [Link powinien być otwarty w tym samym widoku internetowym w systemie Android] (http://stackoverflow.com/questions/7308904/link-should-be-open-in-same-web-view-in-android) – thkala

Odpowiedz

39

Musisz utworzyć WebViewClient:

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

a następnie ustawić go do WebView jak ten:

webview.setWebViewClient(new myWebViewClient()); 
+0

doskonały !! Dziękuję Ci! –

+0

Nie ma za co :) – Ahmad

+0

'shouldOverrideUrlLoading' jest przestarzałe na Androidzie N. Sprawdź http://stackoverflow.com/questions/36484074/is-shouldoverrideurlloading-really-deprecated-what-can-i-use- inste – GabrielOshiro

24

Lub możesz to zrobić, bez tworzenia nowej klasy:

myWebView.setWebViewClient(new WebViewClient()); 

To działa dla mnie.