在 Xamarin.iOS 中搜索 API

本文介绍如何使用 iOS 9 提供的应用搜索 API 来允许用户搜索 Xamarin.iOS 应用中的信息和功能

搜索功能在 iOS 9 中得到了扩展,为访问 Xamarin.iOS 应用中的信息和功能提供了全新方式。 使用新的应用搜索 API,可通过聚焦和 Safari 搜索结果、接力和 Siri 提醒和建议来搜索应用内容。 用户可以借此快速访问应用中的活动和信息。

此外,使用新的搜索 API 可更轻松地将搜索集成到应用中,而无需具备搜索实施经验。 因此,Apple 声称通常需要几个小时才能实现使用 App Search 进行 iOS 9 应用内容的普遍搜索。

使用应用搜索可普遍搜索的 iOS 9 应用内容示例

应用搜索由三个单独的 API 组成:

  1. NSUserActivity - 这是 Apple 在 iOS 8 中发布的 Handoff API 的扩展。 用户可以使用它来公开和私下搜索应用交互历史记录。

  2. Core Spotlight - 允许应用在搜索结果中为其内容编制索引。 它的工作方式类似于数据库 API,可在其中添加和删除项,并且它是在应用中为专用内容编制索引的最佳方式。

  3. WebMarkup - 适用于通过 Web 界面(不仅从应用内部)访问其内容的应用。 Web 内容可以用特殊链接进行标记,Apple 将抓取这些链接并提供指向用户 iOS 9 设备上的应用的深层链接。

选择应用搜索方法

决定实现哪种方法取决于应用提供的交互类型及其呈现的内容类型。

遵循以下指南:

  • NSUserActivity – 使用此框架提供公共和专用内容的可搜索性以及应用内导航点的可搜索性。

  • Core Spotlight – 使用此框架为设备上存储的专用数据提供可搜索性。

  • Web 标记 – 使用此框架为应用提供可搜索性,这些应用不仅可以在应用内部显示内容,还可以从应用的网站显示其内容。

每种应用搜索方法都是不同的,可以单独使用,但 Apple 设计为协同工作。 当使用多种方法对特定项编制索引时,请确保对每种方法使用相同的项 ID,以便各个链接协同工作

使用多种方法不仅可以确保最终用户找到内容,还有助于提高项目在搜索中的排名。

虽然排名过程对开发人员而言基本上是透明的,但用户与给定项的交互会严重影响该排名(例如用户点击链接)。 通过提供丰富、信息量大的项,可以确保吸引用户与内容交互,从而提高其排名。

要编制索引的内容

对于在应用中提供搜索索引的内容和操作,Apple 提供了以下建议:

  • 用户在应用内查看、创建或特选的任何内容。
  • 应用中的导航点和功能。
  • 最近下载到设备的应用显示的新消息、内容或其他类型的项等。

应用搜索增强功能

iOS 10 中的 Core Spotlight 为应用搜索提供了多项增强功能,例如:

  • 众包深层链接流行度(具有差异隐私)- 提供一种在搜索结果中宣传深层链接应用内容的方法
  • 应用内搜索 - 使用新的 CSSearchQuery 类提供应用内 Spotlight 搜索功能,类似于邮件、消息和便笺应用的工作方式。
  • 继续搜索 - 允许用户在 Spotlight 或 Safari 中开始搜索,然后打开应用并继续该搜索
  • 验证结果可视化 - Apple 的应用搜索 API 验证工具现在可以在执行测试时显示网站标记和深层链接的可视化表示。
  • 消息应用图像共享 - 允许在消息中共享(通过消息应用扩展)提供的热门应用内图像显示在 Spotlight 搜索中

若要了解详细信息,请参阅应用搜索增强功能指南。

主动建议

iOS 10 允许系统在适当的时间主动向用户自动呈现有用的信息,从而提供了提高应用参与度的新方法。 正如 iOS 9 提供了使用 Spotlight、Handoff 和 Siri 建议向应用添加深度搜索的功能一样,在 iOS 10 中,应用可以公开系统可从以下位置向用户呈现的功能:

  • 应用切换器
  • 锁屏界面
  • CarPlay
  • Maps
  • Siri 交互
  • QuickType 建议

应用使用一系列技术(例如 NSUserActivity、Web 标记、Core Spotlight、MapKit、Media Player 和 UIKit)向系统公开此功能。

若要了解详细信息,请参阅主动建议指南。

总结

本文介绍了 iOS 9 为 Xamarin.iOS 应用提供的新搜索 API 功能。 其中介绍了用于编制内容索引的 NSUserActivityCore SpotlightWeb 标记方法。 最后简短讨论了何时应使用给定的搜索方法以及应该对哪些类型的内容编制索引。