示例:应用程序包含消息。用户使用消息中的字符串搜索聚光灯。Spotlight 会找到该应用程序。
我听说聚光灯可以搜索应用程序内容。但是如何将它提供给 iOS 上的 Spotlight 呢?
根据Core Data Spotlight 集成编程指南,您想要的功能不适用于 iOS,仅适用于 Mac OS X。
这现在可以从 iOS9 开始。
Apple 发布了 CoreSpotlight SDK (WWDC2015),您可以在其中将您的应用程序集成到 iOS 的聚光灯下,并可以进行内容搜索。
还有其他可能的途径可以将不同的用户活动实际集成到您的应用程序中,并且即使您的应用程序未安装在设备上,也可以搜索事物。
例如,如果您的应用是处理 pdf 的应用,如果用户在他的设备上搜索 pdf,那么即使您的应用未安装在用户的设备。
考虑到您的示例,现在如果您在 Spotlight 中搜索消息字符串,Spotlight 可以打开您的应用程序,您可以让用户实际导航以在您的应用程序中找到确切的消息。
在下面添加链接:您可以找到实施的详细信息。
-光辉
下面是通过新的搜索 API 将您的应用内容添加到 Spotlight 的示例。这在使用 XCode 7 的 iOS9 上可用。
CSSearchableItemAttributeSet * attributes = [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(NSString *)kUTTypeImage]; //Or whatever type
attributes.contentDescription = @"This is my content description.";
attributes.displayName = @"Display Name";
attributes.keywords = @["Stuff","Widget"];
attributes.subject = @"Subject";
attributes.title = @"Title";
CSSearchableItem *item = [[CSSearchableItem alloc] initWithUniqueIdentifier:someUniqueId domainIdentifier:@"SomeGroupName" attributeSet:attributes];
[[CSSearchableIndex defaultSearchableIndex] indexSearchableItems:@[item] completionHandler:nil];
当用户选择聚光灯下的项目时,以下方法:
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler
在您的 AppDelegate 中将被调用。检查 userActivity 对象中的 userInfo 字典并将用户发送到相应的屏幕。
我创建了一个示例项目来集成 corespotlgiht 功能。它适用于 iOS 9,需要 Xcode 7 beta 2 来构建。你可以试试看有没有帮助。https://github.com/majain/iPhoneCoreDataRecipes
相同的视频链接是:https ://youtu.be/Renm1xLDIFc