首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSUserActivity与核心聚光灯深链

NSUserActivity与核心聚光灯深链
EN

Stack Overflow用户
提问于 2018-07-24 01:10:06
回答 1查看 696关注 0票数 0

我正在使用NSUserActivity和content在我的应用程序上索引内容。我之所以使用Core,是因为我想在用户访问(打开)之前对这个内容进行索引。

我面临的问题是AppDelegate方法:func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool

基本上,当我在我的userActivity 中执行此操作时,只有包含正确的信息:

userActivity = myUserActivity

但如果我这样做是行不通的:

CSSearchableIndex.default().indexSearchableItems(searchableItems)

通过使用第二种方法(Core ),我可以在聚光灯下看到我所有的结果,但是当我点击这个项目时,我在AppDelegate方法中没有任何信息。

最糟糕的是:

po userActivity.activityType "com.apple.corespotlightitem"

如果我打印activityType,而不是我自己的,我会得到这个.

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-24 01:49:35

当您的应用程序从CoreSpotlight结果启动时,您将得到一个CSSearchableItemActionType

您需要通过检索CSSearchableItemActivityIdentifier来处理这种类型的操作--此值将与提交到索引时为可搜索项提供的标识符相匹配。

类似于:

代码语言:javascript
复制
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    if userActivity.activityType == CSSearchableItemActionType {
        guard let selectedItem = userActivity.userInfo?[CSSearchableItemActivityIdentifier] as? String else {
            return
        }
        // Do something with selectedItem
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51489110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档