App Intents ja Shortcuts
Tuokaa toimintoja Sirin ja Shortcutsin käytettäviksi.
App Intents ja Shortcuts on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 4 oppituntia.
Mitä App Intentit ovat
App Intents -kehys tuo sovelluksen toiminnot järjestelmän käytettäviksi — Sirille, Shortcutsille, Spotlightille, widgeteille ja Action buttonille. Kuvaatte toiminnon kerran Swift-tyyppinä, minkä jälkeen se on käytettävissä kaikkialla ääniohjattavana ja automatisoitavana.
import AppIntents
// Define an action as a type; the system can run it
// from Siri, Shortcuts, Spotlight, widgets, etc.AppIntentin määrittäminen
Intent noudattaa AppIntent-protokollaa, ilmoittaa käyttäjälle näkyvän title-ominaisuuden ja toteuttaa perform()-menetelmän, joka suorittaa työn ja palauttaa tuloksen. Kehys löytää sen automaattisesti — rekisteröintiä ei tarvita.
import AppIntents
struct AddTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Add Task"
func perform() async throws -> some IntentResult {
// create the task here
return .result()
}
}Parametrit
Käyttäkää @Parameter-ominaisuuswrapperia pyytääksenne syötettä käyttäjältä tai Siriltä. Järjestelmä pyytää puuttuvia arvoja ja tarkistaa ne. Jokaisella parametrilla on Shortcuts-editorissa näkyvä otsikko.
import AppIntents
struct AddTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Add Task"
@Parameter(title: "Title")
var taskTitle: String
func perform() async throws -> some IntentResult {
return .result()
}
}Arvojen palauttaminen ja dialogi
Intent voi palauttaa tietoja ja lausua vahvistuksen. IntentResult-muunnelmien, kuten .result(value:dialog:), avulla voidaan palauttaa tyypitetty arvo sekä puhuttu tai näkyvä dialogi, jonka Siri lukee käyttäjälle.
import AppIntents
struct CountTasksIntent: AppIntent {
static var title: LocalizedStringResource = "Count Tasks"
func perform() async throws
-> some IntentResult & ProvidesDialog {
let count = 5
return .result(
dialog: "You have \(count) tasks")
}
}Parametriyhteenveto
parameterSummary kuvaa Shortcuts-editorissa näytettävää lausetta ja yhdistää parametrit luonnolliseen kieleen, esimerkiksi Lisää \(taskTitle) luettelooni. Sen ansiosta toiminto on helppo ymmärtää, kun se yhdistetään pikakomentoihin.
import AppIntents
struct AddTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Add Task"
@Parameter(title: "Title") var taskTitle: String
static var parameterSummary: some ParameterSummary {
Summary("Add \(\.$taskTitle) to my list")
}
func perform() async throws -> some IntentResult {
.result()
}
}Entiteetit
AppEntity edustaa mallisovelluksen objektia, kuten tehtävää, muistiinpanoa tai soittolistaa, jota järjestelmä voi käsitellä. Entiteetin ja kyselyn avulla Siri ja Shortcuts voivat antaa käyttäjän valita omista tiedoistasi parametrin arvon.
import AppIntents
struct TaskEntity: AppEntity {
static var typeDisplayRepresentation:
TypeDisplayRepresentation = "Task"
var id: String
var displayRepresentation: DisplayRepresentation {
DisplayRepresentation(title: "\(id)")
}
static var defaultQuery = TaskQuery()
}Entiteettikyselyt
EntityQuery kertoo järjestelmälle, miten entiteetit haetaan tunnisteen perusteella ja miten ehdotukset luetellaan. Sen avulla toteutetaan valitsin, jonka käyttäjä näkee valitessaan arvoa Shortcutsissa tai vastatessaan Sirille.
import AppIntents
struct TaskQuery: EntityQuery {
func entities(for ids: [String]) async throws
-> [TaskEntity] {
ids.map { TaskEntity(id: $0) }
}
func suggestedEntities() async throws -> [TaskEntity] {
[TaskEntity(id: "Groceries")]
}
}App-pikakomennot
AppShortcut tekee intentistä äänellä suoritettavan ilman määrityksiä — käyttäjän ei tarvitse ensin rakentaa pikakomentoa. Määrität käynnistyslauseet, joiden on sisällettävä sovelluksen nimitunniste, jotta Siri tietää asiayhteyden.
import AppIntents
struct AddTaskShortcut: AppShortcutsProvider {
static var appShortcuts: [AppShortcut] {
AppShortcut(
intent: AddTaskIntent(),
phrases: ["Add a task in \(.applicationName)"],
shortTitle: "Add Task",
systemImageName: "plus")
}
}Käynnistyslauseet
Lauseiden on sisällettävä \(.applicationName), jotta Siri voi erottaa ne toisistaan. Tarjoa useita luonnollisia muotoiluja, joita käyttäjät saattavat sanoa. Järjestelmä huolehtii vastaavuuksien tunnistamisesta, joten sinun ei tarvitse jäsentää kieltä itse.
import AppIntents
// Provide variants; applicationName is required:
// phrases: [
// "Add a task in \(.applicationName)",
// "Create a task with \(.applicationName)",
// "New \(.applicationName) task"
// ]
let phrases = "include applicationName token"
_ = phrasesKäyttö myös Sirin ulkopuolella
Deklaratiivisuuden ansiosta sama AddTaskIntent voi ohjata interaktiivista widgettiä Button(intent:), Control Center -ohjainta tai Shortcuts-toimintoa — kaikki suorittavat perform()-metodisi ilman ylimääräistä liitäntälogiikkaa.
import AppIntents
import SwiftUI
// In an interactive widget:
// Button(intent: AddTaskIntent()) {
// Label("Add", systemImage: "plus")
// }
let reuse = "one intent, many surfaces"
_ = reuseIntentien lokalisointi
Otsikot ja dialogi käyttävät LocalizedStringResource-resurssia, joten ne käännetään String Catalogin avulla. Myös käynnistyslauseet lokalisoidaan kielikohtaisesti, jolloin Siri voi vastata käyttäjille heidän omalla kielellään.
import AppIntents
struct GreetIntent: AppIntent {
static var title: LocalizedStringResource = "Greet"
func perform() async throws
-> some IntentResult & ProvidesDialog {
.result(dialog: "Welcome back")
}
}Pikatarkistus
Palauttakaa mieleenne, mikä tekee AppShortcutin lauseista kelvollisia.
Kertaus
Opitte App Intents -teknologiasta:
- Toteuttakaa
AppIntentmäärittämällätitlejaperform(); kerätkää syöte@Parameter-määrityksellä ja kuvatkaa separameterSummary-määrityksellä. - Mallintakaa tiedot
AppEntity-entiteettinä ja käyttäkääEntityQuery-kyselyä valitsimia ja ehdotuksia varten. - Tuokaa äänitoiminnot saataville
AppShortcut-lauseilla, jotka sisältävät\(.applicationName)-tunnisteen. - Sama intent ohjaa Siriä, Shortcutsia, interaktiivisia widgettejä ja ohjaimia, ja se lokalisoidaan
LocalizedStringResource-resurssin avulla.
Opi Swift tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 122
- Oppitunnit
- 409
Usein kysytyt kysymykset
Onko oppitunti ”App Intents ja Shortcuts” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “App Intents ja Shortcuts”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”App Intents ja Shortcuts”?
Tuokaa toimintoja Sirin ja Shortcutsin käytettäviksi. Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”App Intents ja Shortcuts”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?
Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- WidgetKit-widgetin rakentaminen
- Aikajanan tarjoajat ja tilannevedokset
- App Extensions -laajennusten yleiskatsaus
- App Intents ja Shortcuts