如何解决如何从iOS应用程序中删除Siri快捷方式意图?
使用iOS13.6.1,Swift5.2.4,XCode11.6,
在Apple's documentation之后,我尝试从我的应用程序中删除特定的Siri快捷方式。
下面的代码进一步显示了我尝试从我的应用中再次删除同一Siri快捷方式的尝试。
不幸的是,Siri快捷方式并未从我的应用程序中删除。
有什么主意我可以将其永久删除吗?
extension EditMediaViewController {
@available(iOS 12.0,*)
func createSiriButton(documentID: String,invitationCode: String) -> INUIAddVoiceShortcutButton {
let siriShortcutButton = INUIAddVoiceShortcutButton(style: .whiteOutline)
let activity = NSUserActivity(activityType: "MyIdentifierStringCodeABCDEF")
activity.title = "Test"
activity.suggestedInvocationPhrase = "Test"
activity.isEligibleForSearch = true
activity.isEligibleForPrediction = true
activity.persistentIdentifier = NSUserActivityPersistentIdentifier("MyIdentifierStringCodeABCDEF")
activity.becomeCurrent()
siriShortcutButton.shortcut = INShortcut(userActivity: activity)
return siriShortcutButton
}
}
extension EditMediaViewController: INUIAddVoiceShortcutButtonDelegate {
@available(iOS 12.0,*)
func present(_ addVoiceShortcutViewController: INUIAddVoiceShortcutViewController,for addVoiceShortcutButton: INUIAddVoiceShortcutButton) {
addVoiceShortcutViewController.delegate = self
addVoiceShortcutViewController.modalPresentationStyle = .formSheet
present(addVoiceShortcutViewController,animated: true,completion: nil)
}
@available(iOS 12.0,*)
func present(_ editVoiceShortcutViewController: INUIEditVoiceShortcutViewController,for addVoiceShortcutButton: INUIAddVoiceShortcutButton) {
editVoiceShortcutViewController.delegate = self
editVoiceShortcutViewController.modalPresentationStyle = .formSheet
present(editVoiceShortcutViewController,completion: nil)
}
}
extension EditMediaViewController: INUIAddVoiceShortcutViewControllerDelegate {
@available(iOS 12.0,*)
func addVoiceShortcutViewController(_ controller: INUIAddVoiceShortcutViewController,didFinishWith voiceShortcut: INVoiceShortcut?,error: Error?) {
controller.dismiss(animated: true,*)
func addVoiceShortcutViewControllerDidCancel(_ controller: INUIAddVoiceShortcutViewController) {
controller.dismiss(animated: true,completion: nil)
}
}
extension EditMediaViewController: INUIEditVoiceShortcutViewControllerDelegate {
@available(iOS 12.0,*)
func editVoiceShortcutViewController(_ controller: INUIEditVoiceShortcutViewController,didUpdate voiceShortcut: INVoiceShortcut?,didDeleteVoiceShortcutWithIdentifier deletedVoiceShortcutIdentifier: UUID) {
controller.dismiss(animated: true,*)
func editVoiceShortcutViewControllerDidCancel(_ controller: INUIEditVoiceShortcutViewController) {
controller.dismiss(animated: true,completion: nil)
}
}
我在这里尝试删除相同的Siri快捷方式(但不起作用-为什么?):
let activity = NSUserActivity(activityType: "MyIdentifierStringCodeABCDEF")
let activityPersistentIdentifier = NSUserActivityPersistentIdentifier("MyIdentifierStringCodeABCDEF")
NSUserActivity.deleteSavedUserActivities(withPersistentIdentifiers: [activityPersistentIdentifier]) {
print("one deleted")
}
INInteraction.deleteall { (error) in
print("all deleted")
}
INInteraction.delete(with: [activityPersistentIdentifier]) { (error) in
print(error)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。