llamada intent compose code android html android-intent hyperlink gmail

android - compose - ¿Cómo pasar un hipervínculo a Gmail en Intent ACTION_SEND?



send email android code (6)

Después de que pongas tu String extra, los atributos se pierden como Spanned . Si lo envía como html, algunas aplicaciones lo pueden resolver y mostrar como lo desee. Por lo general, solo inserta un texto simple en el Bundle de su Intent , y cada aplicación lo interpreta como lo desee, por lo que no hay solución para enviarlo como html y forzar las aplicaciones para mostrarlo como html.

Por otro lado, si sabe qué aplicaciones va a usar a través de compartir, puede leer su documentación y verificar si le permite enviar hipervínculos a través de ACTION_SEND.

Puede decirle a un receptor que un tipo de texto es por intent.setType("text/html") , tal vez el comportamiento de algunas aplicaciones dependa de él.

Puede ser que esta pregunta ya haya sido hecha o duplicada de otra pregunta, pero no obtuve ninguna solución para mi búsqueda. Aquí están los enlaces que seguí para mi pregunta: Link1 Link2

En realidad, mi pregunta está relacionada con compartir texto HTML en la intención predeterminada de Android con un ACTION_SEND. Cuando intento crear un hipervínculo a una URL con un valor diferente, muestra un texto simple de valor. Eso no se puede hacer clic como un enlace.

Así es como estoy:

Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/html"); String link = "https://www.android.com/" String linkValue = "Click Me"; String body1 = "<a href=/"" + link + "/">" + link+ "</a>";//I don''t want this String body2 = "<a href=/"" + link + "/">" + linkValue + "</a>";//This is not working intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body2)); startActivity(Intent.createChooser(intent, "Share With"));

Para body2: cuando comparto el texto usando Gmail, en el correo electrónico el texto hipervinculado aparecerá como un texto normal. Simplemente "Haga clic en mí". Lo comprobé en el navegador de escritorio también. Pero allí también es lo mismo. Revisé este texto en el elemento Inspeccionar (puede obtener el elemento Inspección de una página del navegador como: haga clic con el botón secundario en la página del navegador >> en la ventana emergente haga clic en la parte inferior Examinar O consulte Inspeccionar elemento ) y encuentre que no hay etiqueta para el texto del hipervínculo.

Para body1: está funcionando y obtuve la URL como hipervínculo en el correo electrónico, pero obtuve la URL como hipervínculo. No quiero mostrar la misma URL en el correo electrónico en lugar de tener un valor de sugerencia como formato body2. Este formato se puede lograr mediante el intercambio directo de URL en el cuerpo sin necesidad de etiquetas.

Así que, finalmente, mi búsqueda es, ¿hay alguna forma en Android para compartir texto de hipervínculo con un valor de sugerencia diferente en lugar de como enlace (URL).


Lo que haces en el cuerpo es perfectamente correcto.

Pero Gmail lee el android.intent.extra.TEXT adicional como una cadena.

De hecho, estás haciendo una solicitud de función / informando un error.



Sí, logré esta solución de problema. Gracias, @Faraz.

Este es mi código de respuesta, ya que creé una cadena de etiquetas en string.xml

<string name="link_to_google_map"><![CDATA[<a href="http://maps.google.com/maps?&z=10&q=%1$s+%2$s">LINK TO GOOGLE MAP</a>]]></string>

Y mi código es así, que funciona perfectamente para compartir usando tag en Android:

Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/html"); String shareText = "Thank you for using the ReadyAndroid App" + "<br />" + "Name : " + "ReadyAndroid"; shareText += "<br />" + "Address : " + "https://readyandroid.wordpress.com/ <br />Mandawa, Jhunjhunu, Rajasthan 333704"; String mapLocation = String.format(getString(R.string.link_to_google_map), 28.0500, 75.1487); intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(shareText+mapLocation)); startActivity(Intent.createChooser(intent, "Share with"));


Sugiero que use un recurso de cadena en lugar de una cadena de Java, generalmente es una buena práctica y de esa manera no tendrá que escapar el "tampoco." Y con los datos HTML, tendrá que envolverlo en CDATA.

XML:

<string name="readyandroid"><![CDATA[<a href="https://readyandroid.wordpress.com/">readyandroid</a>]]></string>

en Java, reemplace body2 con:

String body2 = getString(R.string.readyandroid);

Luego intente pasarlo a la intención y enviarlo en un correo electrónico, debería ser un hipervínculo adecuado como le gustaría que fuera.


android:autoLink="web|email"

Por favor agregue este código en textview xml. Va directamente al enlace de Gmail