我在书中效仿了这个例子
NSUserActivity to index Spotlight Search Result
并尝试通过设置
isEligibleForSearch
到
true
.该项目的索引正确,但当我在聚光灯下单击该项目时,我得到了错误的activityType(
NSUserActivityTypeBrowsingWeb
而不是
com.myCompany.myContentType
).
索引代码:
let newUserActivity = NSUserActivity(activityType: "com.myCompany.myContentType")
newUserActivity?.isEligibleForSearch = true
newUserActivity?.persistentIdentifier = "123"
newUserActivity?.userInfo = [
"url": "https://www.stackoverflow.com"
]
newUserActivity?.requiredUserInfoKeys = ["url"]
var attributeSet = CSSearchableItemAttributeSet()
if #available(iOS 14.0, *) {
attributeSet = CSSearchableItemAttributeSet(contentType: .item)
} else {
attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeItem as String)
}
attributeSet.displayName = "Test Spotlight Item"
newUserActivity?.contentAttributeSet = attributeSet
newUserActivity?.becomeCurrent()
搜索结果深层链接处理程序代码:
func application(UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: [AnyObject]? -> Void) -> Bool {
if userActivity.activityType == "com.myCompany.myContentType" {
// Does not go in here since the activityType is different.
}
return true
}
你知道我可能做错了什么吗?