Compiladores comunes para objetos indexables

Calcomanías

Esta es una descripción general de las propiedades más importantes que debes incluir al indexar calcomanías o paquetes de calcomanías para su integración con Gboard Consulta la Ejemplo de indexación de aplicaciones en GitHub.

Propiedad Descripción Ejemplo
name Nombre o palabra clave que se usó para la búsqueda (no se muestra) "Paquete de calcomanías de Snoopy"
url URL que vincula a la calcomanía o al paquete de calcomanías en la app. "http://sticker/pack/canonical/url/snoopy"
image El gráfico de la calcomanía o el paquete de calcomanías Para obtener una calidad de imagen óptima, utiliza imágenes cuadradas de 320. o 500 píxeles. “http://link/to/the/image/bye”
description Etiqueta de accesibilidad de tu calcomanía o paquete de calcomanías "Un paquete de calcomanías de Snoopy"

Ejemplo: Paquete de calcomanías

// 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: calcomanía 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 app debe especificar cuando indexa un mensaje.

Propiedad Descripción Ejemplo
url Es la URL que vincula al mensaje en la app. “miapp://mensajes/42”
name La línea de asunto del mensaje o directamente el mensaje en sí, si no tiene una línea de asunto separada. "Re: almuerzo"
text Opcional. Es el cuerpo del mensaje, si corresponde. Para mensajes del tipo de mensajería instantánea sin asunto independiente, usa "nombre" (consulta la sección anterior). "¿Tienes tiempo para almorzar?"
dateReceived Indica la hora en que se recibió el mensaje para los mensajes entrantes. new Date(2016, 6, 2, 23, 43, 00)
dateSent Indica la hora a la que se envió el mensaje, para mensajes salientes. new Date(2016, 6, 2, 23, 43, 00)
isPartOf.id ID de la conversación de la que forma parte el mensaje. "42"
sender Es el remitente del mensaje.
sender.name Indica el nombre del remitente. "Alicia"
sender.url Opcional. Es la URL que vincula a la persona en la app. “http://example.net/perfiles/alice”
sender.image Opcional. Es una imagen del remitente. Se puede usar una URL web o un URI de contenido. “http://example.net/alicia.jpg”
sender.email Opcional. Es la dirección de correo electrónico del remitente. “alice@example.net”
sender.telephone Opcional. Es 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 Es el nombre del destinatario. "Bob"
recipient.url Opcional. Es la URL que vincula a la persona en la app. “http://example.net/perfiles/bob”
recipient.image Opcional. Es una imagen del destinatario. Se puede usar una URL web o un URI de contenido. “http://example.net/bob.jpg”
recipient.email Opcional. Es la dirección de correo electrónico del remitente. “roberto@example.net”
recipient.telephone Opcional. Es 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 del mensaje.
messageAttachment.name El nombre del archivo adjunto del mensaje. "Calcomanía"
messageAttachment.image Una imagen que representa el archivo adjunto. Se puede usar una URL web o un URI de contenido. “http://example.net/calcomanías/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, usa Indexables.emailMessageBuilder(). No hay en los campos admitidos, pero la IU del resultado será diferente (p.ej., destacar el asunto del correo electrónico).

Nota

Esta es una descripción general de las propiedades más importantes que una app debe especificar cuando indexa una nota.

Propiedad Descripción Ejemplo
url Es la URL que vincula a la nota en la app. “miapp://notes/42”
name Es el título de la nota o directamente el texto de la nota en sí, si no tiene un título separado. "Lista de compras"
text Opcional. Es el texto de la nota, si corresponde. En el caso de las notas sin título separado, utiliza "nombre" (consulta la sección anterior). "carne, pasta, vino"
image Una imagen que representa la nota. Se puede usar una URL web o un URI de contenido. “http://example.net/compras.jpg”
dateCreated Es la hora de creación de la nota. new Date(2016, 6, 2, 23, 43, 00)
author Opcional. Es el autor de la nota.
author.name Es el nombre del autor de la nota. “Bob”

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();