如何删除Siri快捷方式

时间:2020-02-10 18:20:00

标签: ios swift siri sirikit sirishortcuts

我正在尝试从我的应用中删除对Siri快捷方式的所有支持。我有两种类型的快捷方式,都是通过捐赠INInteraction制成的。

func createDocIntent(for template: Document) -> CreateDocumentIntent {
    let intent = CreateDocumentIntent()
    intent.templateURI = template.URI.absoluteString
    intent.templateTitle = template.title.trimmingCharacters(in: .whitespacesAndNewlines)
    intent.suggestedInvocationPhrase = String(format: LS("siri-shortcut.create-document-suggested-phrase"), template.title.trimmingCharacters(in: .whitespacesAndNewlines))
    return intent
}

func donateCreateDocShortcut(for template: Document) {
    let intent = self.createDocIntent(for: template)
    INInteraction(intent: intent, response: nil).donate { error in
        if let error = error {
            dprintln("Failed to donate CreateDocument shortcut to Siri with error: \(error.localizedDescription)")
        }
    }
}

要删除快捷方式,我尝试删除了在Info.plist中创建的Intent子类,并且尝试调用INInteraction.deleteAllNSUserActivity.deleteAllSavedUserActivities,但似乎都没有实际删除快捷方式(请参见下文) )。用户制作的任何快捷方式仍在Shorcuts.app中可用,并且仍可以通过使用语音命令来触发。

    INInteraction.deleteAll { (error) in
        guard let error = error else { return }
        print(error.localizedDescription)
    }
    NSUserActivity.deleteAllSavedUserActivities {
        // Nothing to do
    }

要删除现有的Siri快捷方式还有其他方法吗?

0 个答案:

没有答案