Android WebView: Tel: Geo: Mailto: Proper Handling
<p>Can someone please help explain how to handle Tel: Geo: and Mailto: links correctly using WebView.  </p>

<p>Currently all links result in a "page cannot be displayed" error.</p>

<p>Below is the code I'm using which was put together from other suggested solutions:</p>

<pre><code>mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.loadUrl("http://www.google.com");
mWebView.setWebViewClient(new HelloWebViewClient()); 

}
private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
        if (url.startsWith("tel:")) { 
            startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url))); 
            return true; 
        } else if (url.startsWith("mailto:")) { 
            url = url.replaceFirst("mailto:", ""); 
            url = url.trim(); 
            Intent i = new Intent(Intent.ACTION_SEND); 
            i.setType("plain/text").putExtra(Intent.EXTRA_EMAIL, new String[]{url}); 
            startActivity(i); 
            return true; 
        } else if (url.startsWith("geo:")) { 
            Intent searchAddress = new Intent(Intent.ACTION_VIEW, Uri.parse(url));  
            startActivity(searchAddress);        
            return true; 
        } else { 
            view.loadUrl(url); 
            return true; 
        } 
    } 
}
</code></pre>

<p>}</p>
