Compartir a través de


CoreSpotlight Espacio de nombres

Permite a las aplicaciones agregar datos al índice de búsqueda del sistema.

Clases

CSCustomAttributeKey

Una clave que los desarrolladores de aplicaciones pueden asociar a los metadatos de un elemento indizable que puede aparecer en los resultados de la búsqueda del usuario.

CSIndexErrorCodeExtensions

Métodos de extensión para la enumeración CoreSpotlight.CSIndexErrorCode.

CSIndexExtensionRequestHandler

Controlador para la comunicación entre la aplicación y el índice en el dispositivo. No es necesario que la aplicación se ejecute para que se produzca esta comunicación.

CSLocalizedString

Representa un objeto similar a una cadena que devuelve una versión específica de la configuración regional de una cadena.

CSMailboxKey

Representa claves que identifican buzones de correo usados habitualmente.

CSPerson

Un autor o un destinatario almacenados en .CSSearchableItemAttributeSet

CSSearchableIndex

Índice de búsqueda usado por Spotlight.

CSSearchableIndex_CSOptionalBatchingExtension

Métodos de extensión para T:CoreServices.CSSearchableIndex.

CSSearchableIndexDelegate

Delegar objeto que proporciona miembros a los que se llama al volver a indexar el índice.

CSSearchableIndexDelegate_Extensions

Métodos de extensión a la ICSSearchableIndexDelegate interfaz para admitir todos los métodos del CSSearchableIndexDelegate protocolo.

CSSearchableItem

Objeto que se puede buscar de forma única en un CSSearchableIndexobjeto .

CSSearchableItemAttributeSet

Contiene el contenido real que se va a indexar para la búsqueda.

CSSearchQuery

Busca datos que el desarrollador ha indexado previamente con Core Spotlight API.

CSSearchQueryErrorCodeExtensions

Métodos de extensión para la enumeración CoreSpotlight.CSSearchQueryErrorCode.

Interfaces

ICSSearchableIndexDelegate

Interfaz que representa los métodos necesarios (si los hay) del protocolo CSSearchableIndexDelegate.

Enumeraciones

CSFileProtection

Enumera las opciones de protección de archivos en las llamadas a M:CoreSpotlight.CSSearchableIndex.FromName*.

CSIndexErrorCode

Enumera los posibles errores asociados con el uso de Contenido destacado principal y la búsqueda.

CSSearchQueryErrorCode

Enumera los errores que se pueden producir al ejecutar una consulta principal de Spotlight con Start().

Delegados

CSSearchableIndexFetchHandler

Controlador de finalización usado en FetchLastClientState(CSSearchableIndex, CSSearchableIndexFetchHandler).

Comentarios

Spotlight es la tecnología de búsqueda del sistema en iOS y OS X. CoreSpotlight permite a los desarrolladores agregar datos al índice de búsqueda. Una aplicación sobre la tabla periódica, por ejemplo, podría indexar los distintos elementos y mostrar la página pertinente después de una búsqueda.

La adición de datos a Spotlight se realiza mediante la adición CSSearchableItem de objetos a :DefaultSearchableIndex

//Create CSSearchableItems
var dataItems = searchIndexMap.Select (keyValuePair => {
    Guid guid = keyValuePair.Key;
    String data = keyValuePair.Value;
    var attributeSet = new CSSearchableItemAttributeSet (UTType.Text);
    attributeSet.Title = data + " Page";
    attributeSet.ContentDescription = "My app's data relating to " + data;
    attributeSet.TextContent = data;

    var dataItem = new CSSearchableItem (guid.ToString (), "com.xamarin.CoreSpotlight0", attributeSet);
    return dataItem;
});
//Add items to system index
CSSearchableIndex.DefaultSearchableIndex.Index (dataItems.ToArray<CSSearchableItem> (), err => {
    if (err != null) {
        Console.WriteLine (err);
    } else {
        Console.WriteLine ("Indexed items successfully");
    }
});

Cuando la aplicación se inicia a través de una búsqueda de Contenido destacado, el sistema llama al ContinueUserActivity método con el ActivityType establecido en ActionType:

public override bool ContinueUserActivity (UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler)
{
    if (userActivity.ActivityType == CSSearchableItem.ActionType) {
        var uuid = userActivity.UserInfo.ObjectForKey (CSSearchableItem.ActivityIdentifier);
//... handle Spotlight search for identifier