Я нашел this статью о создании Sirikit Extensions
, которые не являются стандартными, предоставленными Apple в swifting.io.
Вот ссылка:
https://swifting.io/blog/2016/07/18/20-sirikit-can-you-outsmart-provided-intents/
Использование INVocabulary
Из документации Apple:
INVocabulary объект позволяет увеличить фиксированный словарный запас вашего приложения с точки зрения, которые являются как уникальные для вашего приложения, так и для текущего пользователя вашего приложения. Регистрация пользовательских терминов дает Siri подсказки, необходимые для правильного применения этих терминов к соответствующим объектам намерения. Вы можете регистрировать только определенные типы пользовательских терминов, такие как имя контакта, имя пользовательской тренировки, пользовательский тег, применяемый к фотографии, или тип оплаты для конкретного пользователя.
public enum INVocabularyStringType : Int {
case contactName
case contactGroupName
case photoTag
case photoAlbumName
case workoutActivityName
case carProfileName
}
INMessage
Здесь они используют INSearchForMessagesIntent настроить поиск по указателю для поиска поддержки.
struct SupportMe{
static let systems = [
INPerson(personHandle: INPersonHandle(value: "MyNotes",
type: INPersonHandleType.unknown),
nameComponents: nil,
displayName: "MyNotes",
image: nil,
contactIdentifier: "MyNotes",
customIdentifier: "MyNotes")]
static let articles = [
INMessage(identifier: "MyNotesPassword",
content: "Retrieving password in MyNotes app. To retrieve
password use 'forgot password' button that is located below
sign in button. Then type email address that your account has
been assigned to and press reset password",
dateSent: Date(),
sender: SupportMe.systems[0],
recipients: [SupportMe.systems[0]])]
}
extension IntentHandler: INSearchForMessagesIntentHandling{
func handle(searchForMessages intent: INSearchForMessagesIntent,
completion: (INSearchForMessagesIntentResponse) -> Void){
let userActivity = NSUserActivity(activityType: String(INSearchForMessagesIntent.self))
let response = INSearchForMessagesIntentResponse(code: .success,
userActivity: userActivity)
response.messages = [SupportMe.articles[0]]
completion(response)
}
}
Возможный дубликат [Предоставляет ли компания Apple в API для SIRI?] (Http://stackoverflow.com/questions/7857353/does-apple-provide-an-api-for-siri) –