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

搜索开发人员之前使用 Core Spotlight API 编制索引的数据。

CSSearchQueryErrorCodeExtensions

CoreSpotlight.CSSearchQueryErrorCode 枚举的扩展方法。

接口

ICSSearchableIndexDelegate

表示所需方法的接口 ((如果协议 CSSearchableIndexDelegate有任何) )。

枚举

CSFileProtection

枚举对 *的调用中的文件保护选项。

CSIndexErrorCode

枚举与使用 Core Spotlight 和搜索相关的可能错误。

CSSearchQueryErrorCode

枚举在使用 Start()运行 Core Spotlight 查询时可能发生的错误。

委托

CSSearchableIndexFetchHandler

中使用的 FetchLastClientState(CSSearchableIndex, CSSearchableIndexFetchHandler)完成处理程序。

注解

Spotlight 是 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");
    }
});

通过聚焦搜索内容启动应用程序时,系统会调用 方法, ContinueUserActivity 并将 ActivityType 设置为 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