Cómo enviar correo electrónico con un enlace para abrir la aplicación de Android
He creado un código que envía un correo electrónico html a una dirección determinada. El correo electrónico contiene un vínculo como el siguiente:
<a href="crystalcloud://android?4567">Click to validate account</a>
Estaba probando esto enviándolo a mi cuenta de gmail. Por alguna razón, cuando reciba el correo electrónico, no me dejará hacer clic en el enlace. Si pongo este enlace en una página web, mi aplicación se inicia bien.
- IntelliJ / Android Studio: eliminar el uso innecesario de 'esto.'
- Restaurar la pila posterior de Android después de cerrar la aplicación
- Almacenamiento de String en array java
- Integración de ZbarScanner con la aplicación Android
- Dibujo de lienzo que no se dibuja correctamente a pesar de las propiedades de configuración
¿Hay algo especial que tengo que hacer para que este enlace aparezca en un correo electrónico, o simplemente gmail bloquea este tipo de enlaces? ¿Hay alguna manera de evitar este problema en gmail?
EDIT: Añadido fragmentos de mi código
Código para enviar enlace:
MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(emailAddress)); message.setSubject("New Crystal Cloud User"); message.setContent("Thank you for creating a new Crystal Cloud account!<br><a href=\"crystalcloud://android?4567">Click to validate account</a>", "text/html; charset=utf-8"); Transport transport = session.getTransport("smtp"); transport.connect(host, from, pass); transport.sendMessage(message, message.getAllRecipients()); transport.close();
Código de Android para responder a la intención:
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="crystalcloud" /> </intent-filter>
- ViewPagerIndicator - Establece TabPageIndicator en el centro
- Quitar fragmento de bloqueo
- gcm_defaultSenderId no se puede resolver
- No se pueden actualizar los resúmenes de cabecera de PreferenceActivity en teléfonos inteligentes que ejecutan 4.x
- Cómo manejar una intención SEND silenciosa con una actividad sin cabeza
- Problemas de conversión de entero en cadena
- Android: UnsatisfiedLinkError debido a la estructura de carpetas en "lib"?
- Bluetooth no se conecta en 4.4.2
Este es un problema con los clientes de correo electrónico de Android que no muestran vínculos como clicable a menos que sean http o https.
Mi solución fue usar un esquema http para abrir mi aplicación:
<data android:scheme="http" android:host="com.company.app" android:port="3513" />
Esto funciona, pero en molesto porque le pide al usuario que abra la aplicación en el navegador o su aplicación. Otra solución es tener un enlace a un sitio web que luego hace un redireccionamiento javascript a su aplicación, aunque esto puede causar más problemas.
En su cabecera de correo, introduzca Content-Type: text/html
para indicar que el contenido está en HTML para indicar que el correo viene en formato HTML. A continuación, el cliente de correo procesará el código HTML correctamente. También ayudará a incluir el enlace en un bloque <html></html>
.
Estoy enfrentando el mismo problema en el último i consiguió la solución. Puede compartir texto y vínculos
String link_val = "http://play.google.com/store/apps/details?id=" + MainActivity.this.getPackageName(); String body = "<a href=\"" + link_val + "\">" + link_val + "</a>"; String data = "Hello I am using this App.\nIt has large numbers of Words meaning with synonyms.\nIts works offline very smoothly.\n\n" + body; sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(data));
- No se puede publicar nada en LinkedIN usando linkedin-j
- Android ListActivity – ¿cómo agregar una vista debajo de ListView?