我正在尝试从我的应用中删除对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.deleteAll
和NSUserActivity.deleteAllSavedUserActivities
,但似乎都没有实际删除快捷方式(请参见下文) )。用户制作的任何快捷方式仍在Shorcuts.app中可用,并且仍可以通过使用语音命令来触发。
INInteraction.deleteAll { (error) in
guard let error = error else { return }
print(error.localizedDescription)
}
NSUserActivity.deleteAllSavedUserActivities {
// Nothing to do
}
要删除现有的Siri快捷方式还有其他方法吗?