iOS 搜索的应用名称可以与 CFBundleDisplayName 不同吗?
Posted
技术标签:
【中文标题】iOS 搜索的应用名称可以与 CFBundleDisplayName 不同吗?【英文标题】:Can app name for iOS Search be different than CFBundleDisplayName? 【发布时间】:2019-04-05 14:27:58 【问题描述】:我在应用商店中有一个名为“法语翻译+”的应用。
应用图标下方空间不足,无法显示整个名称,因此我设置了 CFBundleDisplayName = "Translator +"。
但是,当我在 ios 搜索中键入“法语”时,我的应用不会出现在应用部分的结果中。
如何在应用图标下方显示“翻译+”时让 iOS 搜索索引“法语翻译+”?
【问题讨论】:
查看这个问题的答案***.com/questions/32799748/… Core Spotlight 框架为应用程序内的数据编制索引,例如法语词典中的“voiture”条目。如上所述,它似乎不允许将术语添加到应用标题的搜索索引中。 我看到你实际上在几个月前在***.com/questions/48343980/… 上问过这个问题,并且那个时候回答的人给你的答案几乎和我给的一样你今天。这些答案有问题吗? How can I choose a different iOS app name for Spotlight?的可能重复 【参考方案1】:问题已经在Specify Spotlight keywords iOS 9中回答了
正如您所指出的,Core Spotlight 为应用程序中的数据编制索引。 您提供的数据。因此,您需要做的就是向它提供一些数据,以便 Spotlight Search 可以找到您的应用程序。
将此添加到 application(_:didFinishLaunchingWithOptions:)
对我有用:
let attributeSet = CSSearchableItemAttributeSet(itemContentType: "application")
attributeSet.title = "French Translator"
attributeSet.keywords = ["french", "translation", "translator"]
attributeSet.contentDescription = "French Language Translation App"
let item = CSSearchableItem(uniqueIdentifier: "5C0B7719-3BE7-4441-892D-A786AA431BDD", domainIdentifier: nil, attributeSet: attributeSet)
CSSearchableIndex.default().indexSearchableItems([item])
print("Finished indexing with \(String(describing: $0))")
【讨论】:
这对数据是正确的。但是,结果显示在下方,而不是在应用程序部分。以上是关于iOS 搜索的应用名称可以与 CFBundleDisplayName 不同吗?的主要内容,如果未能解决你的问题,请参考以下文章