Поделиться через


CoreSpotlight Пространство имен

Позволяет приложениям добавлять данные в индекс поиска системы.

Классы

CSCustomAttributeKey

Ключ, который разработчики приложений могут связать с метаданными индексируемых элементов, которые могут отображаться в результатах поиска пользователя.

CSIndexErrorCodeExtensions

Методы расширения для перечисления CoreSpotlight.CSIndexErrorCode.

CSIndexExtensionRequestHandler

Обработчик для обмена данными между приложением и индексом на устройстве. Приложение не обязательно должно быть запущено для этого взаимодействия.

CSLocalizedString

Представляет строковый объект, возвращающий версию строки, зависящую от языкового стандарта.

CSMailboxKey

Представляет ключи, определяющие часто используемые почтовые ящики.

CSPerson

Автор или получатель, хранящиеся в CSSearchableItemAttributeSet.

CSSearchableIndex

Индекс поиска, используемый Spotlight.

CSSearchableIndex_CSOptionalBatchingExtension

Методы расширения для T:CoreServices.CSSearchableIndex.

CSSearchableIndexDelegate

Объект делегата, предоставляющий члены, которые вызываются при повторном индексе индекса.

CSSearchableIndexDelegate_Extensions

Методы расширения интерфейса ICSSearchableIndexDelegate для поддержки всех методов из CSSearchableIndexDelegate протокола.

CSSearchableItem

Уникальный идентифицируемый объект, доступный CSSearchableIndexдля поиска в .

CSSearchableItemAttributeSet

Содержит фактическое содержимое, которое будет индексировано для поиска.

CSSearchQuery

Выполняет поиск данных, которые разработчик ранее индексировал с помощью API Core Spotlight.

CSSearchQueryErrorCodeExtensions

Методы расширения для перечисления CoreSpotlight.CSSearchQueryErrorCode.

Интерфейсы

ICSSearchableIndexDelegate

Интерфейс, представляющий обязательные методы (если таковые есть) протокола CSSearchableIndexDelegate.

Перечисления

CSFileProtection

Перечисляет параметры защиты файлов в вызовах M:CoreSpotlight.CSSearchableIndex.FromName*.

CSIndexErrorCode

Перечисляет возможные ошибки, связанные с использованием Core Spotlight и поиском.

CSSearchQueryErrorCode

Перечисляет ошибки, которые могут возникнуть при выполнении запроса Core Spotlight с Start()помощью .

Делегаты

CSSearchableIndexFetchHandler

Обработчик завершения, используемый в FetchLastClientState(CSSearchableIndex, CSSearchableIndexFetchHandler).

Комментарии

Интересное — это технология системного поиска в iOS и OS X. CoreSpotlight позволяет разработчикам добавлять данные в индекс поиска. Например, приложение с периодической таблицей может индексировать различные элементы и выводить соответствующую страницу после поиска.

Добавление данных в Spotlight осуществляется путем добавления CSSearchableItem объектов в 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");
    }
});

Когда приложение запускается с помощью поиска содержимого Spotlight, система вызывает ContinueUserActivity метод с установленным значением ActivityTypeActionType:

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