No tengo un dispositivo Android real, así que estoy usando emuladores para todo mi desarrollo por el momento, son mailto: ¿los enlaces web realmente no son compatibles con los dispositivos Android 2.1 y siguientes? 2.2 funciona, pero cada vez que hago clic en un enlace mailto:
en 1.6 o 2.1, aparece un cuadro de diálogo [acción no admitida]. ¿Alguien con un dispositivo real quiere probar esto?mailto: enlaces no compatibles en Android?
Respuesta
usted tiene que manejar por sí 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 su actividad se mantiene una referencia a MyWebViewClient
y asignarlo a su webview
con setWebViewClient(mWebClient)
.
Una advertencia menor con respecto a esta solución: el método siempre devuelve verdadero, que le dice a WebView que "nuestra implementación de WebViewClient maneja todo"; esto puede crear problemas para casos extremos de redirecciones, como usar 'location.replace()' en JavaScript . En lugar de 'view.loadUrl (url); return true; 'puede escribir' return false; 'para lograr el mismo efecto sin introducir errores. Vea mi explicación más larga en [esta respuesta a otra pregunta] (http://stackoverflow.com/a/14335335/241456) – daniel
Una forma más sencilla sería:
if(url.startsWith("mailto:")){
Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
view.getContext().startActivity(intent);
}
'if (MailTo.isMailTo (url)) {// ...' – SK9
- 1. enlaces de mailto en Gmail
- 2. Los enlaces de Mailto no funcionan en Chrome
- 3. HTML5 TAG ADDRESS mailto con enlaces
- 4. Obtención de todos los enlaces mailto con jQuery
- 5. mailto crontab no funciona
- 6. mailto: enlace en UIWebView - No funciona
- 7. Enlaces de MVVMCross en Android
- 8. Android - Tipos de imágenes compatibles
- 9. MailTo vincular en Razor
- 10. Xattrs no son compatibles
- 11. ¿Los enlaces de mailto son incluso relevantes en una era de aumento del correo web?
- 12. Cómo obtener enlaces RTSP Android
- 13. ¿Debería el mailto ser utilizado en HTML5?
- 14. Android: Obtenga tamaños de video compatibles
- 15. Plataformas no compatibles para java.awt.Desktop.getDesktop()
- 16. Abrir Gmail en mailto: acción
- 17. HTML en mailto ancla etiqueta
- 18. ¿Son compatibles zlib.compress en Python y Deflater.deflate en Java (Android)?
- 19. Accesorios compatibles con Mocha compatibles
- 20. Drupal: use la función l o url para los enlaces de mailto
- 21. detectando cuando mailto falló
- 22. mailto usando javascript
- 23. MailTo from Javascript
- 24. El texto del cuerpo de Mailto no rellena IE
- 25. caracteres especiales de mailto
- 26. mailto: Cuerpo de formatear
- 27. ¿Cómo obtener resoluciones compatibles de cámaras de video en Android?
- 28. ¿Cómo puedo hacer enlaces desdeHTML clickeable? (Android)
- 29. Mailto máximo efectivo: longitudes del cuerpo
- 30. Cómo usar archivos compatibles con ARC en proyectos que no son compatibles con ARC
mailto enlaces donde? En un WebView? –
en el navegador móvil utilizando 10.0.2.2 para llegar a localhost. – Chamilyan