gpt4 book ai didi

ios - Siri 快捷方式 - NSUserActivity,不显示给定的缩略图

转载 作者:行者123 更新时间:2023-11-28 07:39:08 24 4
gpt4 key购买 nike

这就是我注册 UserActivity 的方式。

我得到了捷径并且功能有效。

但是我得到的应用程序图标是缩略图,而不是我设置的图标,

func registerUserActivity(component: Component)
{
userActivity = NSUserActivity.init(activityType: "com.company.app.openComponent")

if #available(iOS 12.0, *) {
userActivity.isEligibleForPrediction = true
userActivity.isEligibleForSearch = true
userActivity.suggestedInvocationPhrase = "Open \(component.componentName ?? "recent Component")"
}

userActivity.title = "Open \(component.componentName ?? "recent component")"
userActivity.userInfo = ["componentName" : component.componentName]

let attributes = CSSearchableItemAttributeSet.init(itemContentType: kUTTypeItem as String)

let image = UIImage(named: "cloud_car")!
attributes.thumbnailData = UIImagePNGRepresentation(image)

attributes.contentDescription = "Opens \(component.componentName ?? "recent Component") "
userActivity.contentAttributeSet = attributes
userActivity.becomeCurrent()

}

我做错了什么吗?

最佳答案

据我所知,有 2 个可能的问题导致了此问题。首先是您的逻辑应该是:attributes.thumbnailData = image.pngData()。如果不是这样,那就是缓存特定 NSUserActivity 的缩略图的问题,并且自 iOS 9 以来一直存在。CoreSpotlight 框架似乎将图标数据与activityType,所以如果您之前已经捐赠了那个 NSUserActivity 对象,那么创建一个新的 NSUserActivity 对象将不允许您更新图标图像,即使您之前没有提供图标图像。您能做的最好的事情就是在内部跟踪所有持久标识符,删除旧标识符,并创建一个全新的 NSUserActivity,用户也必须将其视为新的快捷方式。

这绝对是一个愚蠢的问题,我希望在 iOS 9 发布后的 3.5 年里,Apple 会推出一种更新 NSUserActivity 缩略图的方法,但我找不到任何证据证明是这种情况。抱歉,我可以给你一个更好的答案。

关于ios - Siri 快捷方式 - NSUserActivity,不显示给定的缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52754138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com