es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Compartir un enlace con una miniatura en Android

Estoy tratando de implementar el uso compartido que enviará un enlace dinámico, un título y una imagen. Como inicio, quiero que funcione con WhatsApp. Implementé la intención de compartir según la documentación:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, dynamicLink);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Title");

// Si el elemento tiene imágenes, selecciona la primera como miniatura
if (!item.getImagesBitmaps().isEmpty()){
    Uri imageUri = ...(obteniendo la URI de la imagen)
    sendIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
    sendIntent.setType("image/jpg");
}

sendIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Intent shareIntent = Intent.createChooser(sendIntent, null);
startActivity(shareIntent);

Este código funciona. Puedo enviar el enlace a WhatsApp con la imagen y se muestra como un mensaje de imagen estándar.

Sin embargo, mi objetivo es tener un enlace con una miniatura, como esto:

enter image description here

Es decir, algo con una miniatura haciendo clic y este tipo de encabezado con título y descripción.

Busqué bastante una respuesta sobre cómo se puede hacer, y aunque hay preguntas similares aquí con respuestas, parecen ser antiguas, incompletas o algo que no pude entender cómo encajar con la implementación de shareIntent. No pude extraer nada tangible de ellas que pudiera probar.

Agradezco la ayuda.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el resultado deseado, puedes implementar los siguientes pasos:

    1. Crea un enlace dinámico con una imagen previa, título y descripción. Puedes crear este tipo de enlace dinámico utilizando Firebase Dynamic Links o cualquier otro servicio de tu elección.
    2. Modifica el objeto Intent para incluir el enlace dinámico con la imagen previa, título y descripción.

    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.setType("text/plain");
    sendIntent.putExtra(Intent.EXTRA_TEXT, "https://example.com/your-link");
    sendIntent.putExtra(Intent.EXTRA_TITLE, "Título");
    sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Asunto");
    sendIntent.putExtra(Intent.EXTRA_STREAM, thumbnailUri);
    sendIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    
    sendIntent.setPackage("com.whatsapp");
    
    startActivity(Intent.createChooser(sendIntent, "Compartir con"));
    
    1. Establece el paquete como “com.whatsapp” para asegurarte de que el cuadro de diálogo de compartir muestre únicamente WhatsApp como opción de compartir.

    2. Pasa una Uri de miniatura a través de EXTRA_STREAM para agregar la imagen miniatura clickable con la vista previa del enlace.

    Siguiendo estos pasos, podrás implementar la funcionalidad deseada de compartir un enlace con una imagen previa, título e imagen miniatura clickable en WhatsApp.

Comments are closed.