如何在Swift Siri中删除捐赠的快捷方式

时间:2019-01-31 05:11:42

标签: swift shortcut siri sirikit

我有一个简单的待办事项样式应用程序,在其中可以添加添加的项目以实现意图,以便用户无需打开应用程序就可以找到该项目并将其标记为“完成”。

在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项。

我们将不胜感激。

0 个答案:

没有答案