1.2.1 iOS系统搜索能力
iOS系统从2009年(iOS3.0)开始内置全局搜索框(通常称为Spotlight),支持对联系人、应用、短信、地图、文件、邮件等进行搜索。苹果公司在2015年的全球开发者大会(WWDC)上推出了iOS Search API,它重点实现对应用内的内容进行搜索的能力,分为以下3类子API。
1.NSUserActivity
NSUserActivity API用来支持App向全局搜索框(Spotlight)中注册用户之前看过的内容,以便用户在App中对这些内容进行搜索。如图1-14所示,用户在京东App浏览过iPhone 15 Pro相关的商品,在全局搜索框中搜索iPhone 15 Pro时,浏览过的内容就会被展现,点击结果条目则可进入京东App,同时App跳转至对应的页面供用户继续浏览。
图1-14 京东App使用NSUserActivity为用户提供全局搜索浏览历史的能力
2.CoreSpotlight
CoreSpotlight API用来支持App向Spotlight中注册任意内容,使得这些在App中注册的内容在全局搜索框中就可以被搜索到,且这些内容是在本机建立的索引。CoreSpotlight API比较适合搜索App中的内容及用户特有的数据,比如记事本中的内容、社交App中的聊天记录等。
3.Web Markup
调用NSUserActivity API和CoreSpotlight API生成的索引都有一个限制——须先安装App后才能搜索到App中的内容。如果App中的内容大部分都是网页形式,并且用户希望在没有安装App时也能搜索到这些内容,怎么办?苹果为此准备了第三类子API——Web Markup API。开发者调用该API,就表示允许苹果的爬虫抓取自己的网页内容,并且声明了网页内容和应用的关联性,这样就有机会在未安装App的情况下让网页内容出现在全局搜索框的搜索结果中。