Подтверждение требуется для INAddTasksIntentHandling больше не будет работать после обновления до iOS 13 - PullRequest
0 голосов
/ 22 октября 2019

Недавно я обнаружил, что мое приложение с Sirikit для добавления новой задачи больше не работает. всякий раз, когда я пытаюсь подтвердить предоставленную пользователем информацию, указав INSpeakableStringResolutionResult.confirmationRequired для разрешения заголовка или списка, Siri всегда отвечает «Извините, возникла проблема с приложением», «Ой, что-то не так. Пожалуйста, попробуйте еще раз».

Мне любопытно, кто-нибудь знает, есть ли изменение спецификации или какая-либо аналогичная проблема, возникшая у вас в последней версии iOS 13.1.x ??

, пример кода здесь:

import Intents

class IntentHandler: INExtension, INSendMessageIntentHandling, INAddTasksIntentHandling, INSearchForMessagesIntentHandling, INSetMessageAttributeIntentHandling {
    func handle(intent: INAddTasksIntent, completion: @escaping (INAddTasksIntentResponse) -> Void) {
        let userActivity = NSUserActivity(activityType: NSStringFromClass(INAddTasksIntent.self))
        let response = INAddTasksIntentResponse(code: .success, userActivity: userActivity)
        completion(response)
    }

    func resolveTargetTaskList(for intent: INAddTasksIntent, with completion: @escaping (INAddTasksTargetTaskListResolutionResult) -> Void) {
        completion(INAddTasksTargetTaskListResolutionResult.notRequired())
        //completion([INSpeakableStringResolutionResult.confirmationRequired(with: INSpeakableString(spokenPhrase: "test1"))])
    }

    func resolveTaskTitles(for intent: INAddTasksIntent, with completion: @escaping ([INSpeakableStringResolutionResult]) -> Void) {
        completion([INSpeakableStringResolutionResult.notRequired()])
        //completion([INSpeakableStringResolutionResult.confirmationRequired(with: INSpeakableString(spokenPhrase: "test2"))])
    }

    override func handler(for intent: INIntent) -> Any {
        return self
    }
}

, если мы используем другие параметры вместо confirmationRequired. это будет работать как ожидалось. я также пробую тот же параметр для INSendMessageIntentHandling и тренировки, но оба они тоже работают. это довольно странно, так как это не удалось только в INTaskIntent.

большое спасибо:)

...