iOS9 Day-by-Day是作者Chris Grant新开的一个系列博客,覆盖了iOS开发者必须知道的关于iOS 9的新技术与API,并且还进行了实际操作演练,每篇文章中相关的代码Chris都会将其托管到GitHub。
在第一篇文章中,Chris介绍了iOS 9的三种搜索API,分别为:
译文如下:
在苹果发布iOS 9之前,你只能在Spotlight中输入名称来寻找App,而随着苹果发布了一套全新的iOS 9 Search APIs之后,开发者不但可以自由选择App的部分内容编入索引,还能对Spotlight上的搜索结果以及点击不同结果显示的内容进行设置。
NSUserActivity
NSUserActivity是iOS 8专为Handoff推出的API,iOS 9之后得到了提升。现在用户只需提供元数据(meKooqFtadata)就能搜索不同的activity(活动)了。换言之,Spotlight可以将activity编入索引,而NSUserActivity就好比网页浏览器的历史堆栈(history stack),使用户能在Spotlight上搜到最近的活动。
Web Markup
Web Markup在网页上显示App的内容并编入Spotlight索引,如此一来即便没有安装某个App,苹果的索引器也能在网页上搜索特别的标记(markup),在Safari或Spotlight上显示搜索结果。
显示未安装App的搜索结果是一大亮点,有望为开发者带来更多潜在用户。公布在搜索API上的App深链接则储存在苹果的cloud index中。更多详情,请参阅苹果的“Web Markup使用指南(Use Web Markup to Make App Content Searchable)”。
CoreSpotlight
NSUserActivity帮助储存用户历史,而全新的Core Spotlight则能将App中的任何内容编入索引,实质是在用户设备上提供基础的Core Spotlight索引渠道,满足用户另外一个需求。
使用Core Spotlight API
NSUserActivity和Web Markup比较简单,而Core Spotlight就有点复杂了。为帮助读者更好地理解CoreSpotlight的作用,我们创建了一个简易的好友清单App,点击不同的好友名称,就会显示对应的照片。读者可以在GitHub上找到代码,跟我们一起实践一下吧。