我同时使用 NSUserActivity 和 Core Spotlight 来索引我的应用程序上的内容。我使用 Core Spotlight 的原因是因为我想在用户访问(打开)它之前索引这个内容。
我面临的问题是在 AppDelegate 方法中:
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool
当我在视图控制器中执行此操作时,基本上userActivity
只包含正确的信息:
userActivity = myUserActivity
但如果我这样做,它就不起作用:
CSSearchableIndex.default().indexSearchableItems(searchableItems)
.
通过使用第二种方法(Core Spotlight),我可以在 Spotlight 搜索中看到所有结果,但是当我点击该项目时,AppDelegate 方法中没有任何信息。
最糟糕的是:
po userActivity.activityType
"com.apple.corespotlightitem"
如果我打印activityType,而不是我自己的,我会得到这个......
有什么建议么?