A resposta de Arulx Z foi exatamente o que eu estava procurando.
Estou escrevendo um aplicativo com o Navigation Drawer com recyclerview e webviews, para manter a navegação na web dentro do aplicativo, independentemente dos hiperlinks clicados (portanto, não iniciando o navegador externo). Para isso, basta colocar as 2 linhas de código a seguir:
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.setWebViewClient(new WebViewClient());
exatamente na sua declaração do WebView.
Aqui está um exemplo do meu código implementado no WebView:
public class WebView1 extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView wv = (WebView) findViewById(R.id.wv1); //webview statement
wv.setWebViewClient(new WebViewClient()); //the lines of code added
wv.setWebChromeClient(new WebChromeClient()); //same as above
wv.loadUrl("http://www.google.com");
}}
Dessa forma, todos os links clicados no site serão carregados no seu WebView. (Usando o Android Studio 1.2.2 com todos os SDKs atualizados)
WebViewClient
e não precisa de subclassificação se é tudo o que você está fazendo. Eu tenho esse ao trabalho apenas fazendomyWebView.setWebViewClient(new WebViewClient());