【问题标题】:Use NSUserActivity or Core Spotlight使用 NSUserActivity 或 Core Spotlight
【发布时间】:2016-06-14 05:09:49
【问题描述】:

我阅读了一些教程,发现NSUserActivity 用于用户进行活动时的索引信息,Core Spotlight 用于索引应用程序中的一组内容数据。

使用 NSUserActivity

var activity = NSUserActivity(activityType: "com.example.demo.searchapi")
activity.title = contactEntity.name
activity.userInfo = ["id": contactEntity.uid]
activity.eligibleForSearch = true
activity.keywords = NSSet(array: [contactEntity.name,contactEntity.phoneNumber, contactEntity.email]) as! Set

activity.becomeCurrent()

使用核心聚焦

let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeContact as String)
attributeSet.title = contactEntity.name
attributeSet.relatedUniqueIdentifier = contactEntity.uid

let searchableItem = CSSearchableItem(uniqueIdentifier: contactEntity.uid, domainIdentifier: "com.example.demo.searchapi", attributeSet: attributeSet)

CSSearchableIndex.defaultSearchableIndex().indexSearchableItems(searchableItems) { error in  
if let error = error { 
    print("Error indexing: \(error)")
} else {
    print("Indexed.")
}

但我认为两个解决方案结果之间没有区别。如果用户进行活动,我可以使用Core Spotlight,而不是NSUserActivity。它给了我同样的结果。

那么,为什么 Apple 必须提供两种结果相同的不同解决方案?

【问题讨论】:

  • NSUserActivity in iOS 9 有contentAttributeSet,它的类型是CSSearchableItemAttributeSet
  • 我知道。但是 CSSearchableItem 也使用 CSSearchableItemAttributeSet 参数初始化。那么为什么 Apple 提供两个结果相同的 API(NSUserActivity 和 Core Spotlight)。我没有发现任何差异
  • Core Spotlight 不支持公共索引,而 NSUserActivity 支持。 NSUserActivity 可用于设备上和公共索引。

标签: ios corespotlight


【解决方案1】:

我现在将 Core Spotlight 和 NSUserActivity 包含到我的应用程序中,我已经开始了解一些不同之处。

正如@PGDev 在您的 cmets 中所述,NSUserActivity 可以设置为公开索引(在 Apple 的服务器上),这有助于显示在其他用户的搜索结果中。而 Core Spotlight 仅适用于每台设备。

NSUserActivity(适用于我的应用程序)的最大有益区别在于,执行相同activity 的用户越多,例如阅读相同的新闻报道,该索引就越受欢迎并且可以产生有益的结果。 Apple - Enhance Your Search Results

  • 用户查看您的内容的频率(在您使用 NSUserActivity 时捕获)
  • 用户对您的内容的互动量(由互动率决定,该比例基于用户点击与您的应用相关的项目的次数以及在搜索结果中显示的应用相关项目的数量)
  • 网址在您的网站中的受欢迎程度以及可用的结构化数据量

【讨论】:

    猜你喜欢
    • 2018-12-31
    • 1970-01-01
    • 2016-05-08
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2015-12-22
    • 2015-11-15
    相关资源
    最近更新 更多