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