(2)一个小例子
下面,我们通过一个小例子来应用下CoreSpotlight的搜索功能。
首先,需要在项目中导入如下库:
实现如下代码:
//进行标签设置
CSSearchableItemAttributeSet * itemSet = [[CSSearchableItemAttributeSet alloc]initWithItemContentType:@"myApp"];
itemSet.title = @"我的APP";
itemSet.keywords = @[@"haha",@"123"];
itemSet.contentDescription = @"这是搜索到得内容";
itemSet.thumbnailData = UIImagePNGRepresentation([UIImage imageNamed:@"Icon-114.png"]);
CSSearchableItem * item = [[CSSearchableItem alloc]initWithUniqueIdentifier:@"1" domainIdentifier:@"1" attributeSet:itemSet];
[[CSSearchableIndex defaultSearchableIndex]indexSearchableItems:@[item] completionHandler:nil];
我们在搜索中输入haha或者123效果如下:
CoreSpotlight的搜索回调和NSUserActivaty一样,只是区分id的方式有所不同:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:
{
NSString *activityType = userActivity.activityType;
//先取CSSearchableItemActionType
if ([activityType isEqual: CSSearchableItemActionType]) {
NSString *uniqueIdentifier = [userActivity.userInfo objectForKey:CSSearchableItemActivityIdentifier];
// do something
return YES;
}
return NO;
}
3、Web Markup
这个功能与我们app开发关系不大,但是对我app的推广却至关重要,这项技术可以让我们的app关联一个网站,apple通过爬虫来获取我们规定的一些标签值,无论用户是否安装了app,在搜索时,都可以展示出相关信息,因为这项功能主要关联前端技术,需要了解的可以参看:App Search Programming Guide。
三、结语
在我参考的许多相关文章中,都一致建议,iOS9的搜索功能固然强大,然而滥用会造成垃圾信息的泛滥,这样的结果一定会适得其反,作为开发者,我们需要将最合适,最简洁的信息推送到用户的面前。另外,文章有疏漏和错误之处,欢迎指正。