Intents Extension ay isang iOS extension na nagpapahintulot sa mga third-party na app na magproseso ng mga voice command ng Siri at makipag-ugnayan sa mga system service sa pamamagitan ng SiriKit. Ang app ay tumutukoy ng sarili nitong mga intent sa Intents.intentdefinition, nagpapatupad ng mga handler batay sa INIntentHandler, at nagrerehistro ng mga ito para sa pagkilala ng mga voice phrase. Ayon sa Apple Developer Documentation (2025), ang SiriKit ay sumusuporta sa mahigit 20 domain ng intent — mula sa mga mensahe at pagbabayad hanggang sa mga ehersisyo at reserbasyon, at sa iOS 14 ay idinagdag ang suporta para sa custom intents sa pamamagitan ng IntentsExtension.
Mga Pangunahing Punto
Intents Extension ay isang app extension na nagpapahintulot sa Siri, Shortcuts, at iba pang system service na tawagan ang functionality ng app sa pamamagitan ng standardized na INIntentHandler protocol. Kapag sinabi ng user na “Hey Siri, magpadala ng mensahe sa Messenger X”, ina-activate ng Siri ang kaukulang extension, ipinapasa ang mga parameter ng kahilingan, at natatanggap ang resulta para sabihin.
Hindi tulad ng ibang uri ng extension, ang Intents Extension ay gumagana sa background nang walang nakikitang interface — ang Siri mismo ang nagpapakita ng tugon sa pamamagitan ng boses o text card. Ang extension ay maaaring magbigay ng custom interface sa pamamagitan ng INUIHostedViewProviding, na ipinapakita sa loob ng Siri bago isagawa ang command para sa kumpirmasyon.
Ang extension ay walang access sa screen ng device at hindi maaaring magsimula ng mga aksyon nang mag-isa — bilang tugon lamang sa kahilingan mula sa Siri o Shortcuts. Tinitiyak nito ang seguridad: ang user ay laging may kontrol sa kung anong mga aksyon ang ginagawa ng app sa pamamagitan ng mga voice command.
SiriKit ay ang Apple framework para sa pagsasama sa Siri, na ipinakilala sa iOS 10. Tinutukoy nito ang mga domain — mga kategorya ng aksyon na maaaring iproseso ng Siri: mga mensahe, tawag sa telepono, pagbabayad, listahan, paalala, larawan, ehersisyo, reserbasyon, at iba pa. Bawat domain ay may nakapirming set ng mga intent at tugon.
INSendMessageIntent — pagpapadala ng mensahe. INStartWorkoutIntent — pagsisimula ng ehersisyo. INSearchForPhotosIntent — paghahanap ng mga larawan. INRequestRideIntent — pag-order ng taxi. Bawat domain ay tumutukoy ng mandatory at opsyonal na mga parameter na kinukuha ng Siri mula sa voice request. Ayon sa Apple, para sa standard na domain ay hindi kailangan ang intentdefinition file — sapat na ang pagpapatupad ng kaukulang handler.
Para sa mga app na hindi kasama sa standard na domain, simula sa iOS 14 ay lumitaw ang posibilidad ng custom intents. Ang app ay tumutukoy ng sarili nitong mga uri ng command at parameter sa pamamagitan ng Intents.intentdefinition, at natututo ang Siri na kilalanin ang kaukulang mga parirala batay sa mga halimbawang ibinigay ng developer.
Ang Intents Extension ay nagrerehistro sa pamamagitan ng IntentsSupported key sa Info.plist, kung saan nakalista ang lahat ng intent class na pinoproseso ng extension. Ginagamit ng Siri ang listahang ito para pumili ng angkop na extension kapag kinikilala ang isang voice command. Kung maraming extension ang sumusuporta sa parehong intent, nag-aalok ang Siri ng pagpili sa user.
class MessageIntentHandler: NSObject,
INSendMessageIntentHandling {
func handle(
intent: INSendMessageIntent,
completion: @escaping
(INSendMessageIntentResponse) -> Void
) {
let response = INSendMessageIntentResponse(
code: .success, userActivity: nil)
completion(response)
}
}
INIntentHandler — ang protocol na tumutukoy ng mga method para sa pagproseso ng bawat yugto ng intent: pagresolba ng parameter, pagkumpirma, at pagpapatupad. Ipinapatupad ng extension ang mga method na ito para sa bawat uri ng intent na sinusuportahan nito.
resolve — pagsusuri at paglilinaw ng mga parameter ng intent. Tinatawag ng Siri ang method na ito para sa bawat parameter. Kung ang isang parameter ay hindi tinukoy o hindi tama, ang extension ay nagbabalik ng kahilingan para sa paglilinaw, at nagtatanong ang Siri ng karagdagang katanungan sa user. confirm — pagkumpirma ng intensyon. Sinusuri ng extension kung maaari nitong isagawa ang intent sa kasalukuyang konteksto. handle — ang aktwal na pagpapatupad ng operasyon at pagbabalik ng resulta.
Ang paghahati sa tatlong yugto ay kritikal para sa voice UX: kung ang isang parameter ay hindi nakilala, hindi isinasagawa ng Siri ang aksyon, kundi nagtatanong muli. Halimbawa, kung sinabi ng user na “Magpadala ng mensahe kay Alexei”, ngunit may tatlong Alexei sa mga contact — ang extension ay nagbabalik ng resolve na may kahilingan para sa paglilinaw, at ang Siri ay nagtatanong “Kaninong Alexei?”.
INIntentResponse — ang bagay na ibinabalik ng extension sa completion pagkatapos isagawa ang intent. Ang Response ay naglalaman ng result code (success, failure, requiresAuthentication, inProgress) at opsyonal na data para sabihin ng Siri. Tinutukoy ng code kung paano tutugon ang Siri: success — voice confirmation, failure — mensahe ng error, inProgress — indikasyon ng matagal na operasyon.
func resolve(
for intent: INSendMessageIntent,
with completion: @escaping
(INStringResolutionResult) -> Void
) {
if let text = intent.content, !text.isEmpty {
completion(.success(with: text))
} else {
completion(.needsValue())
}
}
Simula sa iOS 14, nakuha ng mga developer ang kakayahang tumukoy ng sariling intent sa labas ng standard na SiriKit domain. Ang custom intents ay inilalarawan sa file na Intents.intentdefinition — ito ay isang visual editor sa loob ng Xcode kung saan nilikha ang mga bagong uri ng command na may mga parameter at tugon.
Ang bawat custom intent ay binubuo ng INIntent (definition ng kahilingan) at INIntentResponse (definition ng tugon). Ang INIntent ay naglalaman ng mga parameter na may uri ng data — String, Integer, CurrencyAmount, mga nahanap na bagay, at iba pa. Ang INIntentResponse ay naglalaman ng mga property para sa pagbabalik ng resulta at array ng mga response code. Ang Xcode ay awtomatikong bumubuo ng mga Swift class batay sa definition na ito.
Inirerekomenda ng Apple na ang custom intent ay hindi dapat magkaroon ng higit sa 5 parameter — ang labis na bilang ay nagpapababa ng voice recognition at nagpapahirap sa karanasan ng user. Para sa bawat parameter, mainam na magbigay ng halimbawang parirala sa Assistant Dialog upang matutunan ng Siri na kilalanin ang mga ito nang tama.
Sa Intents.intentdefinition para sa bawat intent ay maaaring tukuyin ang halimbawang pangungusap — mga pariralang sasabihin ng user sa Siri upang i-activate ang intent. Mga halimbawa: “Mag-order ng kape sa AkingApp”, “Hilingin sa AkingApp na maghanap ng recipe ng pizza”. Ginagamit ng Siri ang mga pariralang ito para matuto ng pagkilala at inaalok ang mga ito sa user kapag nagse-set up ng Shortcuts.
// Intents.intentdefinition (visual editor)
Intent: OrderCoffeeIntent
Parameters:
- beverage (String)
- size (String)
- quantity (Integer)
Response:
- orderNumber (String)
- price (CurrencyAmount)
Phrases:
- "Order coffee in MyApp"
- "Get a latte from MyApp"
INUIHostedViewProviding — ang protocol na nagpapahintulot sa Intents Extension na magpakita ng custom interface sa loob ng Siri bago isagawa ang command. Halimbawa, kapag nag-order ng taxi, ang extension ay maaaring magpakita ng mapa na may ruta at gastos, at kinukumpirma ng user ang aksyon sa pamamagitan ng pagpindot.
Tinutukoy ng protocol ang method na configure(with:for:completion:), kung saan natatanggap ng extension ang intent at nagbabalik ng UIViewController na i-embed sa Siri. Ang laki ng controller ay limitado — maximum na taas na 200 puntos. Inirerekomenda ang paggamit ng compact card na may pangunahing impormasyon: halaga, oras, address.
Ang custom interface ay opsyonal — kung hindi ipapatupad ng extension ang INUIHostedViewProviding, ang Siri ay magpapakita ng standard card na may uri ng intent at app. Para sa karamihan ng intent, sapat na ang standard UI, at inirerekomenda ng Apple na magdagdag ng custom interface lamang kapag talagang nagpapabuti ito ng pag-unawa — halimbawa, para sa pagpapakita ng ruta o pagkumpirma ng pagbabayad.
Para sa intent na may kaugnayan sa pananalapi o personal na data, kinakailangan ang authentication. Ang INIntentResponse ay sumusuporta sa requiresAuthentication code, na pumipilit sa Siri na humingi ng Face ID o Touch ID bago isagawa. Pagkatapos ng authentication, ang extension ay tumatanggap ng kumpirmasyon sa pamamagitan ng hiwalay na handle call, kung saan sinusuri ang status ng authentication.
Partikular na binibigyang-diin ng Apple: Ang Intents Extension ay hindi dapat humingi ng sarili nitong password o biometric — ginagamit ang system authentication. Ang pag-imbak ng access token sa Keychain na may shared access sa pagitan ng app at extension ay standard practice para sa long-lived session.
class IntentViewController: UIViewController {
func configure(
with intent: INIntent,
completion: @escaping
(UIViewController?) -> Void
) {
let cardView = ConfirmationCardView()
let hostingController =
UIHostingController(rootView: cardView)
completion(hostingController)
}
}
Mga Madalas Itanong
Oo, ang extension ay maaaring magproseso ng mga intent mula sa Shortcuts app nang walang voice input. Ang user ay lumikha ng shortcut mula sa mga iminungkahing aksyon, at ang extension ay isinasagawa ito nang walang partisipasyon ng Siri.
Custom intents ay available simula sa iOS 14 at mas bago. Para sa iOS 10–13, tanging ang standard na SiriKit domain ang available. Ang custom intents ay nangangailangan ng Intents.intentdefinition at pagbuo ng mga Swift class.
Ang Siri ay naghihintay ng tugon mula sa extension nang mga 15 segundo. Kapag lumampas sa limitasyon, ipinaaalam ng Siri sa user na nabigo ang aksyon. Para sa matagal na operasyon, gamitin ang response code na inProgress.
Gamitin ang Keychain na may shared access sa pamamagitan ng access group sa pagitan ng pangunahing app at extension. Ang App Group shared UserDefaults ay isang alternatibo, ngunit mas mababa sa Keychain sa mga tuntunin ng seguridad.
Intents Extension ay nagpoproseso ng lohika — resolve, confirm, handle. Intents UI Extension ay nagbibigay ng custom interface para sa pagpapakita sa loob ng Siri sa pamamagitan ng INUIHostedViewProviding. Ang dalawa ay maaaring magtulungan.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din