В моем демонстрационном проекте 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
Спасибо!