代码之家  ›  专栏  ›  技术社区  ›  Kunal Shah

单击CoreSpotlight搜索结果时,在“NSUserActivity”中键入错误的Activity

  •  0
  • Kunal Shah  · 技术社区  · 3 年前

    我在书中效仿了这个例子 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
    }
    

    你知道我可能做错了什么吗?

    0 回复  |  直到 3 年前