如何在 Swift 中删除添加的快捷方式?

Posted

技术标签:

【中文标题】如何在 Swift 中删除添加的快捷方式?【英文标题】:How to delete added Shortcuts in Swift? 【发布时间】:2018-11-16 16:16:08 【问题描述】:

在我的应用中,我实现了 Siri 快捷方式。用户可以使用INUIAddVoiceShortcutButton 添加快捷方式,这会显示INUIAddVoiceShortcutViewController。这非常有效。用户可以使用INUIAddVoiceShortcutButton 添加和编辑快捷方式。但是我如何以编程方式删除快捷方式?当用户删除应该使用此快捷方式执行的操作时,应该会发生这种情况。

这是我显示INUIAddVoiceShortcutViewController的代码:

    let videoReturnIntent = VideoShortcutIntent()
    videoReturnIntent.videoID = informationToShowDetail.videoID!
    videoReturnIntent.suggestedInvocationPhrase = "Test"
    videoShortCutIntent = videoReturnIntent

    if let shortcut = INShortcut(intent: videoReturnIntent) 
        let viewController = INUIAddVoiceShortcutViewController(shortcut: shortcut)
        viewController.modalPresentationStyle = .formSheet
        viewController.delegate = self // Object conforming to `INUIAddVoiceShortcutViewControllerDelegate`.
        present(viewController, animated: true, completion: nil)
    

【问题讨论】:

只是说,我不希望应用程序能够删除我创建的快捷方式。最多建议我这样做,并将我链接到“设置”应用。 【参考方案1】:

如果用户已经添加了 Siri 的快捷方式,您不能以编程方式将其删除,但用户必须按照此处所述手动删除(段落:删除带有相应数据的捐赠):

https://developer.apple.com/design/human-interface-guidelines/sirikit/overview/siri-shortcuts/

如果您想删除尚未添加到 Siri 的捐赠,您可以执行INInteraction.deleteAll。有关此功能的更多详细信息,请在此处查看文档:

https://developer.apple.com/documentation/sirikit/ininteraction

【讨论】:

但是这样你移除了所有的捐赠,如果你想移除特定的捐赠怎么办?! INInteraction 下还有其他方法可以删除特定 groupidentifier 的捐赠...但不清楚如何从快捷方式设置此 groupidentifier。 对不起,我直到现在才使用 deleteAll 函数,所以我没有针对您的情况的具体解决方案。

以上是关于如何在 Swift 中删除添加的快捷方式?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 woocommerce 快捷方式代码中删除 clearfix

iOS开发 如何创建快捷方式

如何通过 Innosetup 删除桌面快捷方式

如何知道在我们的快捷方式应用程序中添加了特定快捷方式还是不使用我们的 iOS 应用程序?

桌面快捷方式如何创建

如果删除快捷方式应用程序,INUIAddVoiceShortcutButton 将不起作用