В моем проекте у меня есть расширение WatchKit, которое, как предполагается, решает проблемы намерений SiriKit с помощью расширения намерений WatchKit.У обоих расширений намерений WatchKit и WatchKit установлена целевая версия развертывания WatchOS 5.0.
Соответствующий код выглядит следующим образом:
IntentHandler.swift
...
class MyIntentHandler: NSObject, INStartWorkoutIntentHandling {
func handle(intent: INStartWorkoutIntent, completion: @escaping (INStartWorkoutIntentResponse) -> Void) {
let result = INStartWorkoutIntentResponse(code: .continueInApp, userActivity: nil)
completion(result)
}
}
...
ExtensionDelegate.swift
...
func handle(_ intent: INIntent, completionHandler: @escaping (INStartWorkoutIntentResponse) -> Void) {
let result = INStartWorkoutIntentResponse(code: .failure, userActivity: .none)
completionHandler(result)
}
...
Проблема в том, что функция handle(_:completionHandler:)
в ExtensionDelegate.swift не вызывается для обработки намерения, выданного в IntentHandler.swift.Приложение Watch будет запущено без вызова этой функции.Само собой разумеется, другие функции обработки в ExtensionDelegate.swift (например, handle(_:)
) в настоящий момент вызываются, как и ожидалось.
Любая идея, почему эта конкретная функция не вызывается при обработкенамерение в ExtensionDelegate.swift?
PS: эквивалентная функция application(_:handle:completionHandler:)
в AppDelegate.swift вызывается при обработке намерений в цели iOS.