如何实施SportLight搜索?

时间:2015-10-05 13:08:35

标签: ios objective-c iphone ios9

我正在使用聚光灯搜索,我已经在我的功能中实现了所有必需的想法,但仍然没有在搜索中找到项目,请建议我。

-(void)functionForSportlightsearch{
    NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:sportlightSearchID];
    activity.title = @"Item test";
    activity.keywords = [NSSet setWithArray:self.arrUnits];
    activity.eligibleForSearch = YES;
    [activity becomeCurrent]; 
  }

启用此功能仍然缺少什么,我在 viewDidLoad(RootviewController)中调用它。

2 个答案:

答案 0 :(得分:0)

使用iOS 9,Apple升级Handoff,将其与Spotlight相关联。

为此,应用程序只需要注册已启动的活动(使用NSUserActivity),以及它呈现的内容(使用Core Spotlight);然后系统处理该信息,在本地或Apple服务器上对其进行索引。

  Apple规定,不应过度使用关键字   跟随开发人员的警告:将检测到不相关的关键字   并且活动将无法通过它们进行搜索。

要处理搜索结果,必须实现appDelegate中的特定方法:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray *restorableObjects))restorationHandler

此方法应重新创建与活动关联的视图并将其呈现给用户。

了解更多信息:http://applidium.com/en/news/ios9_search_api/

答案 1 :(得分:0)

同时在上面的代码中添加以下行..

self.userActivity = activity;

userActivity 是UIResponder类属性。