Mejoras de App Search en Xamarin.iOS

En este artículo se tratan las mejoras que Apple ha realizado en App Search en iOS 10 y cómo implementarlas en Xamarin.iOS.

En iOS 10, Apple ha realizado varias mejoras en la búsqueda de aplicaciones, como la vinculación profunda de crowdsourced, la búsqueda en la aplicación, la continuación de búsqueda y la visualización de los resultados de validación. En este artículo se trata la implementación de estas características en una aplicación Xamarin.iOS.

Acerca de las mejoras en las búsquedas de aplicaciones

Core Spotlight en iOS 10 proporciona varias mejoras en la búsqueda de aplicaciones, como:

  • Popularidad de vínculos profundos de crowdsourced (con privacidad diferencial): proporciona una manera de promover el contenido de la aplicación vinculada profunda en los resultados de búsqueda.
  • Búsqueda en la aplicación: use la nueva CSSearchQuery clase para proporcionar la capacidad de búsqueda de Spotlight en la aplicación similar a cómo funcionan las aplicaciones Mail, Messages y Notes.
  • Continuación de búsqueda: permite que un usuario inicie una búsqueda en Spotlight o Safari, abra una aplicación y continúe con esa búsqueda.
  • Visualización de los resultados de validación: la herramienta de validación App Search API de Apple ahora muestra una representación visual del marcado y la vinculación profunda de un sitio web al realizar pruebas previas.
  • Uso compartido de imágenes de aplicación de mensajes: permite que las imágenes en la aplicación populares proporcionadas para compartir en mensajes (a través de una extensión de aplicación de mensajes) aparezcan en las búsquedas de Contenido destacado.

En las secciones siguientes se tratarán estos temas con más detalle.

iOS 10 proporciona un mecanismo para contar la frecuencia con la que el usuario sigue los vínculos profundos populares en una aplicación y usa esta información para mejorar la clasificación del contenido de una aplicación en los resultados de búsqueda, a la vez que protege la identidad del usuario mediante la privacidad diferencial.

Para que las aplicaciones usen objetos NSUserActivity para proporcionar direcciones URL de vínculo profundo y tengan la propiedad EligibleForPublicIndexing establecida en true, iOS 10 envía un subconjunto de hashes de privacidad diferencial a los servidores de Apple. A continuación, esta información se usa para promover contenido popular en la aplicación en los resultados de la búsqueda.

Para obtener más información sobre la implementación de vínculos profundos en una aplicación de Xamarin.iOS, consulte nuestra documentación de búsqueda con NSUserActivity.

Búsqueda en la aplicación

Al implementar la nueva clase CSSearchQuery, una aplicación puede proporcionar la tecnología de reglas de búsqueda y coincidencia de Spotlight para buscar contenido en su interior, sin que el usuario tenga que salir de la aplicación (similar a cómo funciona la aplicación Correo, Mensajes y Notas).

Normalmente, las aplicaciones que admiten CSSearchQuery no tendrán que mantener su propio índice de búsqueda independiente.

Continuación de búsqueda

En iOS 9, Apple introdujo las API de búsqueda (como Core Spotlight, NSUserActivity y el marcado web) para proporcionar vinculación profunda de contenido dentro de una app para permitir a los usuarios buscar ese contenido utilizando tanto la interfaz de búsqueda de Spotlight como la de Safari. Consulte nuestra documentación sobre las nuevas API de búsqueda para obtener más información.

En iOS 10, Apple se basa en esta función para permitir al usuario iniciar una búsqueda en Spotlight o Safari, y luego continuar la búsqueda al abrir una aplicación.

Para implementar esta característica, edite el archivo Info.plist de la aplicación, agregue la clave CoreSpotlightContinuation de tipo booleano y establezca su valor en YES:

Para responder a que el usuario continúe con un resultado de búsqueda (NSUserActivity), edite el archivo AppDelegate.cs y anule el método ContinueUserActivity. Por ejemplo:

public override bool ContinueUserActivity (UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler)
{

    // Take action based on the activity type
    switch (userActivity.ActivityType) {
    case "com.xamarin.platform":
        // Restore the state of the app here...
        break;
    default:
        if (userActivity.ActivityType == CSSearchQuery.ContinuationActionType) {
            var search = userActivity.UserInfo.KeyForValue(CSSearchQuery.QueryString);
            // Continue user's search here...
        }
        break;
    }

    return true;
}

Este código busca el tipo de acción de continuación de consulta (userActivity.ActivityType == CSSearchQuery.ContinuationActionType) y, a continuación, lee la consulta actual del usuario del diccionario de información de usuario de la clase NSUserActivity (userActivity.UserInfo.KeyForValue(CSSearchQuery.QueryString)). Desde aquí, la aplicación debe tomar medidas para continuar la búsqueda del usuario.

Para obtener más información sobre cómo trabajar con búsquedas en una aplicación de Xamarin.iOS, consulte nuestra documentación de búsqueda con Core Spotlight.

Visualización de resultados de validación

La herramienta de validación de la API de búsqueda de aplicaciones de Apple muestra ahora una representación visual del marcado y los enlaces profundos de un sitio web (incluido el marcado definido en Schema.org) al realizar las pruebas.

Mediante la herramienta de validación, un desarrollador puede ver la información que el rastreador web de Applebot ha indexado para el sitio, como el título, la descripción, la dirección URL y cualquier otro elemento compatible.

Para obtener más información sobre cómo trabajar con el marcado web, consulte nuestra documentación de búsqueda con marcado web.

Uso compartido de imágenes de aplicación de mensajes

Si una extensión de aplicación de mensajes proporciona imágenes para compartir en Mensajes, la extensión se puede configurar para permitir que el usuario realice búsquedas de Spotlight para las imágenes populares desde los mensajes, sin tener que salir de la aplicación.

Para habilitar esta característica, haga lo siguiente:

  1. Cree una extensión de aplicaciones de mensajes.
  2. Agregue com.apple.developer.associated-domains a los derechos de la aplicación e incluya una lista de dominios web que hospedan las imágenes que comparte la extensión de aplicación de mensajes. Para cada dominio, especifique el servicio spotlight-image-search.
  3. Agregue un archivo apple-app-site-association al sitio web que hospeda las imágenes. Este archivo incluye un diccionario para el servicio spotlight-image-search e incluye el identificador de la aplicación, que es el identificador de equipo o el prefijo de identificador de aplicación seguido del identificador de lote. El archivo puede contener hasta 500 rutas de acceso y patrones que serán indexados por Spotlight e incluidos en las búsquedas populares de imágenes. Para obtener más información, consulte la documentación sobre la creación y carga del archivo de asociación de Apple.
  4. Permita que Applebot rastree los sitios web. Consulte la documentación acerca de Applebot de Apple.

Consulte nuestra documentación de integración de aplicaciones de mensajería para obtener más información.

Resumen

En este artículo se han tratado las mejoras que Apple ha realizado en App Search en iOS 10 y cómo implementarlas en Xamarin.iOS.