重复项目显示在聚光灯下,缩略图未显示

时间:2016-03-03 08:25:30

标签: ios spotlight nsuseractivity

我正在尝试同时使用NSUserActivityCore Spotlight APIs和网络标记。

因此基于App Search Programming Guide

中给出的建议
  

如果你正在使用所有三个API,那么使用它的URL就可以了   相关网页作为uniqueIdentifier的值,   relatedUniqueIdentifier和webpageURL。

这是我创建项目的方式:

NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@"com.test.product"];
activity.title = self.detailModel.title;
activity.userInfo = @{ @"id" : self.detailModel.productId };
activity.eligibleForHandoff = NO;
activity.eligibleForPublicIndexing = YES;
activity.eligibleForSearch = YES;
activity.webpageURL = [NSURL URLWithString:[self shareUrl]];

activity.contentAttributeSet.contentDescription = self.detailModel.proDesc;
activity.contentAttributeSet.title = self.detailModel.title;
activity.contentAttributeSet.thumbnailData = UIImagePNGRepresentation(image);
activity.contentAttributeSet.relatedUniqueIdentifier = [self shareUrl];

CSSearchableItemAttributeSet *attrSet = [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(NSString *)kUTTypeURL];
attrSet.title = self.detailModel.title;
attrSet.contentDescription = self.detailModel.proDesc;
attrSet.thumbnailData = activity.contentAttributeSet.thumbnailData;
attrSet.relatedUniqueIdentifier = [self shareUrl];

CSSearchableItem *searchableItem = [[CSSearchableItem alloc] initWithUniqueIdentifier:[self shareUrl] domainIdentifier:@"com.test.product" attributeSet:attrSet];
[[CSSearchableIndex defaultSearchableIndex] indexSearchableItems:@[ searchableItem ] completionHandler:^(NSError *_Nullable error) {
    if (error) {
        DDLogError(@"%@", error.localizedDescription);
    } else {
        DDLogInfo(@"Core Spotlight indexed");
    }
  }];
  }
}];

self.systemUserActivity = activity;
[self.systemUserActivity becomeCurrent];

但是当我试图在聚光灯下搜索时,有两个问题:

  • 显示重复的项目,一个来自活动,另一个来自聚光灯索引

  • 这两个项目仅显示应用图标而不是我设置的图像

0 个答案:

没有答案