Clicking URLs opens default browser

android, android-websettings, android-webview, url

Solution

If you're using a `WebView` you'll have to intercept the clicks yourself if you don't want the default Android behaviour.

You can monitor events in a `WebView` using a `WebViewClient`. The method you want is `shouldOverrideUrlLoading()`. This allows you to perform your own action when a particular URL is selected.

You set the `WebViewClient` of your `WebView` using the `setWebViewClient()` method.

If you look at the `WebView` sample in the SDK there's an example which does just what you want. It's as simple as:

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

Problem

I have loaded an external URL in my `WebView`. Now what I need is that when the user clicks on the links on the page loaded, it has to work like a normal browser and open the link in the same `WebView`. But it's opening the default browser and loading the page there? I have enabled JavaScript. But still it's not working. Have I forgotten something?

Original source