例: アプリにはメッセージが含まれています。ユーザーは、メッセージの文字列でスポットライトを検索します。Spotlight がそのアプリを見つけます。
Spotlight はアプリのコンテンツを検索できると聞きました。しかし、それを iOS の Spotlight にフィードするにはどうすればよいでしょうか。
Core Data Spotlight Integration Programming Guideによると、必要な機能は iOS では利用できず、Mac OS X でのみ利用できます。
これは、iOS9 以降で可能になりました。
Apple は CoreSpotlight SDK (WWDC2015) をリリースしました。この SDK では、アプリを iOS のスポットライトに統合し、コンテンツ検索を行うことができます。
さまざまなユーザー アクティビティを実際にアプリに統合し、アプリがデバイスにインストールされていない場合でも検索する方法は他にもあります。
たとえば、アプリが PDF を処理するアプリである場合、ユーザーが自分のデバイスで PDF を検索すると、アプリがインストールされていない場合でも、PDF を読むために使用できるアプリとしてスポットライトの設定に表示されます。ユーザーのデバイス。
あなたの例を考えると、スポットライトでメッセージ文字列を検索すると、スポットライトがアプリを開くことができ、ユーザーが実際にナビゲートしてアプリ内の正確なメッセージを見つけることもできます。
以下にリンクを追加: 実装の詳細を確認できます。
-テジャス
これは、新しい Search 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