作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这就是我注册 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/
我是一名优秀的程序员,十分优秀!