Constructores comunes para objetos indexables

Pegatinas

Esta es una descripción general de las propiedades más importantes que se deben incluir al indexar calcomanías o paquetes de calcomanías para la integración con Gboard. Consulte el ejemplo de indexación de aplicaciones en Github para ver un ejemplo.

Propiedad Descripción Ejemplo
name Nombre o palabra clave utilizada para la búsqueda: no se muestra. "Paquete de pegatinas de Snoopy"
url URL que enlaza con la pegatina o el paquete de pegatinas de la aplicación. "http://sticker/pack/canonical/url/snoopy"
image El gráfico de la pegatina o del paquete de pegatinas. Para obtener una calidad de imagen óptima, utilice imágenes cuadradas de 320 o 500 píxeles. "http://enlace/a/la/imagen/adiós"
description Etiqueta de accesibilidad para tu pegatina o paquete de pegatinas. "Un paquete de pegatinas de Snoopy"

Ejemplo: paquete de pegatinas

// Build and index the sticker objects on first run after update or install
// to minimize lag between sticker install and stickers surfacing in Gboard.

FirebaseAppIndex.update(new Indexable.Builder("StickerPack")
   .setName("Snoopy Pack")
   .setImage("content://sticker/pack/canonical/image")
   // see: Support links to your app content section
   .setUrl("http://sticker/pack/canonical/url/snoopy")
   // Set the accessibility label for the sticker pack.
   .setDescription("A sticker pack of Snoopy")
   .put("hasSticker",
        new Indexable.Builder("Sticker")
          .setName("Hey")
          .setImage("http://link/to/the/image/hey")
          .setDescription("A Snoopy hey sticker.")
          .build(),
       new Indexable.Builder("Sticker")
          .setName("Bye")
          .setImage("http://link/to/the/image/bye")
          .setDescription("A Snoopy bye sticker.")
          .build())
   .build());

Ejemplo: pegatina individual

Indexable[] stickers = new Indexable[]{
      new Indexable.Builder("Sticker")
   .setName("Hey")
   .setImage("http://www.snoopysticker.com?id=1234")
   // see: Support links to your app content section
   .setUrl("http://sticker/canonical/image/hey")
   // Set the accessibility label for the sticker.
   .setDescription("A sticker for hi")
   // Add search keywords.
   .put("keywords", "hey", "snoopy", "hi", "hello")
   .put("isPartOf",
        new Indexable.Builder("StickerPack")
          .setName("Snoopy Pack"))
          .build())
   .build()),
new Indexable.Builder("Sticker")
   .setName("Bye")
   .setImage("http://www.snoopysticker.com?id=4567")
   // see: Support links to your app content section
   .setUrl("http://sticker/canonical/image/bye")
   // Set the accessibility label for the sticker.
   .setDescription("A sticker for Bye")
   // Add search keywords.
   .put("keywords", "bye", "snoopy", "see ya", "good bye")
   .put("isPartOf",
        new Indexable.Builder("StickerPack")
          .setName("Snoopy Pack")
          .build())
   .build())};
// Make sure we update stickers in batch
FirebaseAppIndex.update(stickers);

Mensaje

Esta es una descripción general de las propiedades más importantes que una aplicación debe especificar al indexar un mensaje.

Propiedad Descripción Ejemplo
url La URL que vincula al mensaje en la aplicación. "miaplicación://mensajes/42"
name La línea de asunto del mensaje, o directamente el propio mensaje, si no tiene una línea de asunto separada. "Re: almuerzo"
text Opcional. El cuerpo del mensaje, si corresponde. Para mensajes del tipo de mensajería instantánea sin una línea de asunto separada, utilice "nombre" (ver arriba). "¿Estás libre para almorzar?"
dateReceived La hora en que se recibió el mensaje, para mensajes entrantes. nueva fecha(2016, 6, 2, 23, 43, 00)
dateSent La hora en que se envió el mensaje, para mensajes salientes. nueva fecha(2016, 6, 2, 23, 43, 00)
isPartOf.id Un ID de la conversación o hilo del que forma parte el mensaje. "42"
sender El remitente del mensaje.
sender.name El nombre del remitente. "Alicia"
sender.url Opcional. La URL que vincula a la persona en la aplicación. "http://ejemplo.net/profiles/alice"
sender.image Opcional. Una imagen del remitente. Se puede utilizar una URL web o una URI de contenido. "http://ejemplo.net/alice.jpg"
sender.email Opcional. La dirección de correo electrónico del remitente. "alicia@ejemplo.net"
sender.telephone Opcional. El número de teléfono del remitente. "+16502530000"
sender.isSelf Indicación de si el usuario es el remitente. El valor predeterminado es falso. FALSO
recipient Uno o varios destinatarios del mensaje.
recipient.name El nombre del destinatario. "Beto"
recipient.url Opcional. La URL que vincula a la persona en la aplicación. "http://ejemplo.net/profiles/bob"
recipient.image Opcional. Una imagen del destinatario. Se puede utilizar una URL web o una URI de contenido. "http://ejemplo.net/bob.jpg"
recipient.email Opcional. La dirección de correo electrónico del remitente. "bob@ejemplo.net"
recipient.telephone Opcional. El número de teléfono del remitente. "+16502530000"
recipient.isSelf Indicación de si el usuario es el destinatario. El valor predeterminado es falso. verdadero
messageAttachment Opcional. Uno o varios archivos adjuntos al mensaje.
messageAttachment.name El nombre del archivo adjunto al mensaje. "Pegatina"
messageAttachment.image Una imagen que representa el archivo adjunto. Se puede utilizar una URL web o una URI de contenido. "http://example.net/stickers/23.png"

Ejemplo: mensaje entrante

Indexable message = Indexables.messageBuilder()
    .setUrl("myapp://messages/42")
    .setText("Are you free for lunch?")
    .setDateReceived(new Date(2016, 6, 2, 23, 44, 00))
    .setIsPartOf(Indexables.conversationBuilder().setId("42")
    .setSender(Indexables.personBuilder()
        .setName("Alice")
        .setImage("http://example.net/alice.jpg")
        .setEmail("alice@example.net")
        .setTelephone("+16502530000"))
    .setRecipient(Indexables.personBuilder()
        .setName("Bob")
        .setImage("http://example.net/bob.jpg")
        .setEmail("bob@people.net")
        .setTelephone("+16502530000")
        .setIsSelf(true))
    .build();
 

Para mensajes de correo electrónico, utilice Indexables.emailMessageBuilder() en su lugar. No hay diferencia en los campos admitidos, pero la interfaz de usuario del resultado será diferente (por ejemplo, resaltando la línea de asunto del correo electrónico).

Nota

Esta es una descripción general de las propiedades más importantes que una aplicación debe especificar al indexar una nota.

Propiedad Descripción Ejemplo
url La URL que enlaza a la nota en la aplicación. "miaplicación://notas/42"
name El título de la nota, o directamente el propio texto de la nota, si no tiene título independiente. "Lista de la compra"
text Opcional. El texto de la nota, en su caso. Para notas sin título separado, utilice "nombre" (ver arriba). "filete, pasta, vino"
image Una imagen que representa la nota. Se puede utilizar una URL web o una URI de contenido. "http://ejemplo.net/compras.jpg"
dateCreated La hora de creación de la nota. nueva fecha(2016, 6, 2, 23, 43, 00)
author Opcional. El autor de la nota.
author.name El nombre del autor de la nota. "Beto"

Ejemplo: nota

Indexable note = Indexables.noteDigitalDocumentBuilder()
    .setUrl("myapp://notes/42")
    .setName("Shopping list")
    .setText("steak, pasta, wine")
    .setImage("http://example.net/shopping.jpg")
    .setDateCreated(new Date(2016, 6, 2, 23, 43, 00))
    .build();