xcode iOS搜索的应用名称可以不同于CFBundleDisplayName吗?

f0brbegy  于 2023-11-21  发布在  iOS
关注(0)|答案(2)|浏览(165)

我在应用商店里有一个名为“法语翻译+”的应用程序。
应用图标下方没有足够的空间显示整个名称,因此我设置CFBundleDisplayName =“Translator +"。
但是,当我在iOS搜索中键入“法语”时,我的应用不会出现在应用程序部分的结果中。
如何让iOS搜索在应用图标下方显示“Translator +”的同时索引“French Translator+”?


的数据

628mspwn

628mspwn1#

问题 * 已在Specify Spotlight keywords iOS 9中回答
正如你所指出的,Core Spotlight在应用程序中索引数据。数据是 * 你 * 提供的。所以你所需要做的就是提供一些数据,以便Spotlight搜索可以找到你的应用程序。
把这个添加到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))")
}

字符串

ltqd579y

ltqd579y2#

我发现titlekeywords在某些时候是无效的。这对我来说很有效。

let attributeSet = CSSearchableItemAttributeSet(contentType: .text)
        attributeSet.displayName = "Name"
        attributeSet.contentDescription = "Descruption"
        attributeSet.artist = "Lucas"

        let searchableItem = CSSearchableItem(uniqueIdentifier: "starWar", domainIdentifier: "com.fatbobman.Movies.Sci-fi", attributeSet: attributeSet)

        CSSearchableIndex.default().indexSearchableItems([searchableItem]){ error in
            if let error = error {
                print(error.localizedDescription)
            }
        }

字符串

相关问题