我有一个简单的待办事项样式应用程序,在其中可以添加添加的项目以实现意图,以便用户无需打开应用程序就可以找到该项目并将其标记为“完成”。
在Note类中,我具有此功能来捐赠意图,该意图可以按预期工作
public func donateMarkNoteAsCompleteIntent() {
let intent = MarkNoteAsCompleteIntent()
intent.content = self.content
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/YYYY"
intent.addedDate = dateFormatter.string(from: self.addedDate)
intent.id = self.id
let interaction = INInteraction(intent: intent, response: nil)
interaction.groupIdentifier = self.id
interaction.donate(completion: nil)
}
我唯一的问题是,当用户使用快捷方式并触发应用程序更新Note项时,我想删除该快捷方式,以使用户无法再次触发它。
在我的意图句柄函数中,我最终调用了该函数
public func removeMarkNoteAsCompleteIntent() {
INInteraction.deleteAll(completion: nil)
let index = CSSearchableIndex()
index.deleteAllSearchableItems(completionHandler: nil)
}
无论我在这里做些什么组合,我似乎都无法删除捐赠的快捷方式。一旦用户接受将任务标记为完成,我希望快捷方式在从Spotlight等进行的搜索中不再可见。意图处理代码中的所有其他功能都在起作用,它可以完美地更新数据库中的Note项。>
我们将不胜感激。