用途:本技能是 Core Spotlight 框架与 NSUserActivity 的综合指南,帮助 App 内容在 Spotlight 搜索中可被发现、支持 Siri 预测与 Handoff。核心区分:Core Spotlight 用于索引全部 App 内容;NSUserActivity 用于标记当前用户活动以支持预测/接力。
适用场景:为文档、笔记、订单、消息等内容建立 Spotlight 索引;用 NSUserActivity 实现 Handoff 或 Siri 预测;在 CSSearchableItem、IndexedEntity、NSUserActivity 之间做选择;实现从 Spotlight 结果继续活动;批量索引、删除已索引内容;排查 Spotlight 搜不到 App 内容;把 NSUserActivity 与 App Intents 集成(appEntityIdentifier)。不适合:App Shortcuts 实现、App Intents 基础、整体可发现性策略。
主要能力:CSSearchableItem 通过 CSSearchableItemAttributeSet 设置标题、描述、关键字、缩略图、位置、评分等元数据,并以 uniqueIdentifier 与 domainIdentifier 管理更新、按标识或域删除。NSUserActivity 通过 isEligibleForSearch、isEligibleForPrediction、isEligibleForHandoff 等属性启用相应能力,配合 persistentIdentifier 与 contentAttributeSet 提供元数据,需调用 becomeCurrent() 并保持强引用。App Entity 可用 IndexedEntity 生成 CSSearchableItem,或通过 associateAppEntity 关联已有条目。
使用方式:批量调用 indexSearchableItems 提升性能(建议每次 100-500 项);删除用 deleteSearchableItems(withIdentifiers:)、deleteSearchableItems(withDomainIdentifiers:)、deleteAllSearchableItems,活动删除用 deleteSavedUserActivities。接续处理在 UIKit 中实现 application(_:continue:restorationHandler:),SwiftUI 用 onContinueUserActivity;从 Core Spotlight 条目接续时读取 CSSearchableItemActivityIdentifier。
限制:公开索引 isEligibleForPublicIndexing 仅适用于公开可访问内容;Quick Note 集成要求活动为当前活动、标题简明、标识稳定并可长期导航到内容。更多细节(如完整 API 行为与平台差异)暂未提供。