#swift #siri #sirikit #nsuseractivity
#swift #siri #sirikit #nsuseractivity
Вопрос:
Мой случай предельно прост: Я использую следующую функцию
private func launchActivity(_ id: String, title: String, invocPhrase: String) {
userActivity = NSUserActivity(activityType: "Open_bank")
userActivity?.title = title
userActivity?.userInfo = ["id": id]
if #available(iOS 12.0, *) {
userActivity?.suggestedInvocationPhrase = invocPhrase
userActivity?.isEligibleForPrediction = true
userActivity?.persistentIdentifier = id
} else {
//Can't actually invoke this block
}
}
создать определенную пользовательскую активность, а затем добавить ее в Siri, чтобы ее можно было вызвать с помощью by invocPhrase
. Вот функция, которая это делает.
func presentAddOpenBankToSiriVC() {
guard let userActivity = self.userActivity else { return }
if #available(iOS 12.0, *) {
let shortcut = INShortcut(userActivity: userActivity)
let viewController = INUIAddVoiceShortcutViewController(shortcut: shortcut)
viewController.modalPresentationStyle = .formSheet
viewController.delegate = self
present(viewController, animated: true, completion: nil)
} else {
//Can't actually invoke this block
}
}
Позже я попытаюсь удалить его (а также все другие действия пользователя)
NSUserActivity.deleteAllSavedUserActivities {}
И это просто не удаляет какие-либо действия пользователя, вопреки тому, что написано в документации Apple
https://developer.apple.com/documentation/sirikit/deleting_donated_shortcuts
На самом деле, сначала я попробовал метод
deleteSavedUserActivities(withPersistentIdentifiers:completionHandler:)
с помощью persistentIdentifier UserActivity, но, очевидно, также безрезультатно.
Я понятия не имею, почему он отказывается сдвинуться с места, но был бы благодарен за любую помощь или подсказку