В моей демонстрации SiriKit метод application:continueUserActivity:restorationHandler: не вызывался

В моем демонстрационном проекте SiriKit я обработал INSendMessageIntent объект MyMessageHandler и реализовал методы, определенные протоколом INSendMessageIntentHandling, один из которых:

- (void)handleSendMessage:(INSendMessageIntent *)intent completion:(void (^)(INSendMessageIntentResponse * _Nonnull))completion {
    NSLog(@"%@", NSStringFromSelector(_cmd));
    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INSendMessageIntent class])];
    userActivity.title = NSStringFromClass([INSendMessageIntent class]);
    INSendMessageIntentResponse *response = [[INSendMessageIntentResponse alloc] initWithCode:INSendMessageIntentResponseCodeSuccess userActivity:userActivity];
    completion(response);
}

Я установил значение свойства title строкой и убедился, что userActivity не является нулевым объектом. а затем я реализую метод с именем: (BOOL)application:continueUserActivity:restorationHandler: на AppDelegate.m и возвращаю YES

И теперь проблема приходит:

запустите основную программу, затем отладьте программу расширения.

метод (BOOL)application:continueUserActivity:restorationHandler: не вызывался, и я уже добавил элемент с именем: INSendMessageIntent для массива IntentsSupported в файле info.plist в программе расширения.

  • Xcode 8.2.1

Спасибо!


person arnoldxiao    schedule 24.02.2017    source источник
comment
Вы когда-нибудь решали это? Я сталкиваюсь с той же проблемой.   -  person Jason Gallavin    schedule 28.04.2017


Ответы (1)


Попробуйте вернуть ответ с помощью INSendMessageIntentResponseCodeInProgress

person ondermerol    schedule 13.12.2017