Jor*_*n H 7 ios corespotlight ios-searchapi nsuseractivity
我在网站上添加了Web Markup,因此当用户在iOS 9中搜索时,项目将显示在Spotlight搜索结果中.用户可以浏览应用程序中的相同项目,因此我想创建NSUserActivity在用户浏览项目时链接到Web内容的对象.
现在,NSUserActivity有一个contentAttributeSet属性我将用于将缩略图照片附加到活动.CSSearchableItemAttributeSet有一些属性NSUserActivity也有,所以我不确定我应该实现哪一个,或者我应该为两者指定相同的数据.难道我设置title的NSUserActivity,以及在title上CSSearchableItemAttributeSet,或只有一个或其他?同样keywords是两者的财产.
NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@“com.domain.appname-something"];
activity.title = @“My Title";
activity.keywords = [NSSet setWithArray:@[@“one", @“two", @“three"]];
activity.userInfo = @{@“id": @“12345"};
activity.requiredUserInfoKeys = [NSSet setWithArray:@[@“id"]];
activity.eligibleForSearch = YES;
activity.eligibleForPublicIndexing = YES;
activity.webpageURL = [NSURL URLWithString:@"https://someurl.com"];
//QUESTION: Do I need to duplicate title and keywords here:
CSSearchableItemAttributeSet *contentAttributeSet = [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(NSString *)kUTTypeImage];
contentAttributeSet.title = activity.title;
contentAttributeSet.displayName = activity.title;
contentAttributeSet.keywords = [activity.keywords allObjects];
contentAttributeSet.contentDescription = @“My Description Here";
contentAttributeSet.thumbnailData = [self generateImage];
activity.contentAttributeSet = contentAttributeSet;
Run Code Online (Sandbox Code Playgroud)
在与 DTS 讨论这个话题后,他们的结论是:
\n\n\n\n对于
\n\nkeywords可以在 NSUserActivity 和 NSUserActivity\xe2\x80\x99s 嵌入的 CSSearchableItemAttributeSet 上设置的属性,例如 ,Core Spotlight 工程的建议是仅在 CSSearchableItemAttributeSet 上设置它们。[
\ntitle和displayName] 或多或少是相同的,其软\n 含义是,如果项目的标题非常长,则该标题将放入\n 属性中,title而缩写标题将放入\ndisplayName属性中。
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |