да, спасибо, Дэн! Похоже, текст «Добавлено в Siri» является реализацией по умолчанию от Apple после установки фразы. Если я пытаюсь установить заголовок, он перекрывает этот текст.
я есть 2 сири ярлыки в моем приложении. Я использую NSUserActivity, чтобы пожертвовать эти ярлыки. Я также создал 2 NSUserActivityTypes в моем info.plist.
Есть 2 контроллера представления, которые обрабатывают эти ярлыки (1 контроллер представления на 1 ярлык).
Если я добавлю 1 ярлык siri из 1 контроллера представления, а затем перейду ко 2-му контроллеру представления, то появится кнопка быстрого вызова siri (INUIAddVoiceShortcutButton
) на 2-м контроллере вида автоматически выбирает первый ярлык (созданный на 1-м контроллере вида) и показывает «Добавлено в Siri» с предложенной фразой вместо отображения кнопки «Добавить в Siri». Я дважды проверил, что каждыйNSUserActivity
имеет другой идентификатор, но все равно каким-то образом выбирает неправильный ярлык.
View Controller 1:
let userActivity = NSUserActivity(activityType: "com.activity.type1")
userActivity.isEligibleForSearch = true
userActivity.isEligibleForPrediction = true
userActivity.title = shortcut.title
userActivity.suggestedInvocationPhrase = suggestedPhrase
let attributes = CSSearchableItemAttributeSet(itemContentType: kUTTypeItem as String)
attributes.contentDescription = description
userActivity.contentAttributeSet = attributes
let shortcut = INShortcut(userActivity: userActivity)
let siriButton = INUIAddVoiceShortcutButton(style: .whiteOutline)
siriButton.translatesAutoresizingMaskIntoConstraints = false
siriButton.shortcut = shortcut
self.view.addSubview(siriButton)
View Controller 2:
let userActivity2 = NSUserActivity(activityType: "com.activity.type2")
userActivity2.isEligibleForSearch = true
userActivity2.isEligibleForPrediction = true
userActivity2.title = shortcut.title
userActivity2.suggestedInvocationPhrase = suggestedPhrase
let attributes = CSSearchableItemAttributeSet(itemContentType: kUTTypeItem as String)
attributes.contentDescription = description
userActivity2.contentAttributeSet = attributes
let shortcut = INShortcut(userActivity: userActivity2)
let siriButton = INUIAddVoiceShortcutButton(style: .whiteOutline)
siriButton.translatesAutoresizingMaskIntoConstraints = false
siriButton.shortcut = shortcut
self.view.addSubview(siriButton)
Аналогичная вещь происходит, когда я удаляю приложение и переустанавливаю, не удаляя ярлыки из приложения настроек телефона.