天天看点

iOS 9:快速让你的APP支持spotlight搜索

ios9中支持为app中的内容做索引以支持spotlight搜索,感觉是个很有心意的功能。需要提到的是这些索引是存在本地设备中的,不会同步到icoloud中,更换了设备就没有了。

效果就是这样:

iOS 9:快速让你的APP支持spotlight搜索

创建支持搜索的内容

支持搜索的内容的类是cssearchableitem。

可以展示的属性有标题,一段描述文字,还有缩略图。这里建议给每个item设置一个过期时间(expirationdate)。

iOS 9:快速让你的APP支持spotlight搜索

首先创建表示一个配置展示内容的对象cssearchableitemattributeset

attributeset也支持电话号码,和地理坐标。右边会有对应的动作,如果是支持导航会有一个箭头。(因为我的app里不需要这功能,我自己没有试过)

iOS 9:快速让你的APP支持spotlight搜索

创建cssearchableitem

uniqueidentifier相当于这条数据的id。domainidentifier则表示相关的域。苹果还提供了一组api对这些索引进行修改删除操作,domainidentifier可以当做参数,比如可以讲一个域下的所有索引删除。

将cssearchableitem添加至系统

tips

大部分的app可能还要兼容ios8,这里介绍下swift下的判断方法。

如果是在一个方法里要使用ios9的api,使用下面来判断(xcode7也会提醒你)。

如果是自己写的一整个方法想表示只在ios9可用,用下面的关键字加在方法头表示

直接贴我的项目代码了。

iOS 9:快速让你的APP支持spotlight搜索
iOS 9:快速让你的APP支持spotlight搜索

用户搜索后选中打开app的处理

在app delegate里添加这个回调就好了。

在oc下的方法是这个

通过这个可以取到创建cssearchableitem时设置的identifier

接着就可以用这个identifier取出对应的数据,进行处理了。

继续阅读