Mailto: enlaces no compatibles en Android?
No tengo un dispositivo Android real, así que estoy usando emuladores para todo mi desarrollo por ahora, son mailto: enlaces web realmente no compatible con dispositivos Android 2.1 y siguientes? 2.2 funciona, pero cada vez que hago clic en un mailto:
enlace en 1.6 o 2.1, incluso, me dan un diálogo [acción no compatible]. ¿Alguien con un dispositivo real quiere probar esto?
Tienes que manejarlo tú mismo en un WebViewClient
public class MyWebViewClient extends WebViewClient { Activity mContext; public MyWebViewClient(Activity context){ this.mContext = context; } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if(url.startsWith("mailto:")){ MailTo mt = MailTo.parse(url); Intent i = new Intent(Intent.ACTION_SEND); i.setType("text/plain"); i.putExtra(Intent.EXTRA_EMAIL, new String[]{mt.getTo()}); i.putExtra(Intent.EXTRA_SUBJECT, mt.getSubject()); i.putExtra(Intent.EXTRA_CC, mt.getCc()); i.putExtra(Intent.EXTRA_TEXT, mt.getBody()); mContext.startActivity(i); view.reload(); return true; } view.loadUrl(url); return true; } }
En tu actividad guardas una referencia a MyWebViewClient
y la asignas a tu webview
con setWebViewClient(mWebClient)
.
Una manera más sencilla sería:
if(url.startsWith("mailto:")){ Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); view.getContext().startActivity(intent); }