Ich fand this Artikel über die Herstellung Sirikit Extensions
, die nicht standardmäßig von Apple auf swifting.io zur Verfügung gestellt werden.
Hier ist der Link:
https://swifting.io/blog/2016/07/18/20-sirikit-can-you-outsmart-provided-intents/
Mit INVocabulary
Aus der Dokumentation Apple:
Das INVocabulary Objekt können Sie Ihre App festen Vokabular mit Begriffen erweitern, die Dies gilt sowohl für Ihre App als auch für den aktuellen Nutzer Ihrer App. Die Registrierung von benutzerdefinierten Begriffen liefert Siri die Hinweise, die benötigt werden, um diese Begriffe entsprechend auf die entsprechenden Absichtsobjekte anzuwenden. Sie können nur bestimmte Arten von benutzerdefinierten Begriffen registrieren, z. B. den Namen eines Kontakts, den Namen eines Workouts eines Benutzers, ein benutzerdefiniertes Tag, das auf ein Foto angewendet wird, oder eine benutzerspezifische Zahlungsart.
public enum INVocabularyStringType : Int {
case contactName
case contactGroupName
case photoTag
case photoAlbumName
case workoutActivityName
case carProfileName
}
INMessage
Hier verwenden sie INSearchForMessagesIntent eine Indexsuche Einrichtunterstützung für die Suche.
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)
}
}
Mögliche Duplikat [Nimmt Apple eine API für SIRI bieten?] (Http://stackoverflow.com/questions/7857353/does-apple-provide-an-api-for-siri) –