Launch custom Android application from WebView

It's true, links with a custom URI scheme don't load automatically launch apps from a WebView.

What you need to do is add a custom WebViewClient to your WebView:

webView.setWebViewClient(new CustomWebViewClient());

and then in the shouldOverrideUrlLoading(), have the following code:

public boolean shouldOverrideUrlLoading(final WebView webView, final String url) {

    if (url.startsWith("my.special.scheme://")) {

        final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

        // The following flags launch the app outside the current app
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);

        activity.startActivity(intent);

        return true;
    }  

    return false;
}

I'm not sure, but I believe that WebView simply doesn't handle custom URI schemes.

The workaround is to override WebViewClient.shouldOverrideUrlLoading() and manually test if the URL uses your URI scheme, launching your app and returning true if it matches, otherwise returning false.