Cómo agregar la integración de Siri a las aplicaciones de iOS 10
Una de las fronteras finales de la expansión de aplicaciones móviles es la capacidad de interactuar con Siri, una función que muchos desarrolladores han querido durante años.ahora es posible SiriKit.
Anunciado en WWDC 2023, SiriKit es una forma para que los desarrolladores agreguen interacción de voz a sus aplicaciones iOS 10 a través de Siri. Esto se hace mediante Intents y el paradigma de extensión de la aplicación lanzado en iOS 8; este proceso proporciona una forma segura para que las aplicaciones accedan a la funcionalidad del sistema y proporcionen funcionalidad al usuario fuera de la aplicación.
A continuación se muestra una descripción general de qué son las intenciones y cómo usarlas. Luego, crearemos una aplicación de muestra que muestre cómo mostrar la interfaz de usuario en Siri desde su extensión.
VER: Siri de Apple: una guía para personas inteligentes (Tecnopedia)
¿Cuál es la intención?
Las intenciones son cómo su aplicación maneja la interacción del usuario y proporciona información a Siri y al usuario.
Las intenciones tienen dos componentes: la extensión de intenciones y la extensión de interfaz de usuario de intenciones. La extensión Intents es un requisito que es cómo su aplicación recibirá información de las solicitudes de Siri para su procesamiento. La extensión de la interfaz de usuario de Intents es un componente opcional que le permite proporcionar una interfaz visible dentro de Siri una vez que su extensión de Intents haya manejado con éxito la intención.
Con Intents, los dominios (o tipos de aplicaciones) que se pueden usar con Siri incluyen:
- teléfono en línea
- mensajería
- Pago
- foto
- ejercicio
- Reserva de viaje
- directiva de automóviles
- reproducción de coche
- reserva de restaurante
Espere agregar más dominios a Siri para brindar una amplia flexibilidad para las aplicaciones habilitadas para Siri. Actualmente, su aplicación debe pertenecer a una de estas categorías para implementar Siri.
VER: Cómo usar aplicaciones de terceros con Siri (Tecnopedia)
Cómo crear una aplicación de muestra
Vamos a crear una aplicación de muestra. Si aún no tiene un proyecto de Xcode, cree un archivo de proyecto de iOS usando la plantilla de Vista única, luego siga los pasos a continuación para crear la extensión Intents.
- Haga clic en el proyecto iOS en el navegador de proyectos.
- Haga clic en el botón + para agregar un nuevo destino o seleccione Archivo | Nuevo | Destino.
- En el selector de plantillas, seleccione Extensión de intenciones y haga clic en Siguiente.
- En este nuevo panel (Figura A), llamamos a la extensión MyIntent. Además, asegúrese de marcar la casilla de verificación Incluir extensión de IU si es necesario; esto creará automáticamente la Extensión de IU de intención junto a la Extensión de intención.
- Haga clic en Finalizar.
Figura A
Después de crear el objetivo, verá dos nuevas carpetas en el navegador de proyectos: MyIntent y MyIntentUI. Ambas carpetas tienen un Info.plist y un archivo rápido para la fuente; sin embargo, la extensión de Intent UI tiene un guión gráfico y un archivo de controlador de vista (Figura B).
Lo último que debe configurar en el proyecto es asegurarse de que Siri esté habilitado en la pestaña Capacidades. Seleccione el archivo del proyecto en el navegador, seleccione el objetivo de iOS y luego seleccione la pestaña Capacidades. Gire el interruptor de Siri a la posición ON.
Cómo registrar un Intent
Registrar una intención es un proceso de dos partes. Al registrar un Intent, en realidad le estás diciendo a Siri lo que tu aplicación puede hacer con Siri.acceso Página de desarrollador de Apple para SiriKit Intents Encuentra el nombre de un Intent que se puede registrar.
La primera parte de este proceso de registro es registrar la intención admitida en Info.plist en el destino de la intención (Figura C).
Figura C
Usaremos la Intención de reserva de viaje para este ejemplo, así que edite el Info.plist de MyIntent para que se vea como el de arriba, asegurándose de que contenga las siguientes claves:
- INRequestRideIntentHandling
- INRequestRideIntent
- INRequestRideIntentResponse
La segunda parte de registrar un Intent es abrir IntentHandler.swift en la clase MyIntent. En esta clase, notará que se ajusta a un protocolo diferente basado en el Intent registrado en Info.plist.
Edite el archivo IntentHandler.swift de la siguiente manera:
import Intents
clase IntentHandler: INExtension, INRequestRideIntentHandling {
Anular el controlador de funciones (para la intención: INIntent) -> cualquier {
// Esta es la implementación predeterminada. Si desea que diferentes objetos manejen diferentes Intents, puede anular esto y devolver el controlador deseado para ese Intent en particular.
volver a uno mismo
}
func handle(requestRide intent: INRequestRideIntent, hecho: @escaping(INRequestRideIntentResponse) -> Void) {
dejar estado = INRideStatus()
estado.rideIdentifier = «12345»
let respuesta = INRequestRideIntentResponse.init(código: .failure, userActivity: Ninguno)
respuesta.rideStatus = estado
hecho (respuesta)
}
}
En el controlador de ejemplo anterior, cada vez que el usuario solicita reservar un viaje en Siri a través de la aplicación, responde con un estado fallido porque en realidad no tenemos un servicio de reserva. Este código es solo para demostrar cómo funciona el proceso, no para construir un servicio de trabajo real.
Si desea incluir más funciones, puede implementar tipos de intenciones adicionales. Consulte la documentación del desarrollador de Apple para conocer la conformidad del protocolo requerida para varios intentos habilitados para Siri.
En este proyecto de muestra, no usaremos la interfaz de usuario de Intents para proporcionar la interfaz al usuario.
VER: Cómo aprendimos a hablar con las computadoras y cómo aprendieron a responder (Tecnopedia)
Cómo autorizar una aplicación para que funcione con Siri
Una vez que se escribe el código del controlador, todo lo que queda es agregar el código a la aplicación iOS que permite la autorización. El primer paso es abrir el archivo Info.plist de la aplicación iOS y agregar la clave «NSSiriUsageDescription» y un valor de cadena orientado al usuario que explique cómo se usa Siri en la aplicación y por qué la aplicación requiere la autorización del usuario. Para esta aplicación de muestra, usaremos «Reservar un viaje con Siri».
A continuación, en algún lugar del código de la aplicación de iOS, debe solicitar la autorización de iOS y del usuario para usar Siri. Para esta aplicación de muestra, haremos esto en el método application:didFinishLaunchingWithOptions: en AppDelegate.swift agregando el siguiente código:
INPreferences.requestSiriAuthorization { (status: INSiriAuthorizationStatus) in
// Handle Siri authorizations status here
}
Se volverá a llamar a este bloque cuando se complete la autorización y le permite verificar el estado para ver si el usuario ha autorizado la aplicación para trabajar con Siri. No olvides importar el marco de Intents cuando lo llames desde tu código de iOS.
Es hora de ejecutar la aplicación y ver si podemos obtener una respuesta de Siri (estamos buscando una respuesta de falla cuando solicitamos reservar un viaje). Cree y ejecute la aplicación en el dispositivo, luego ábrala y autorícela a través de Siri.A continuación, encienda Siri y diga «vía [App Name]»donde Nombre de la aplicación es el nombre de la aplicación que creó. Cuando haga esto y obtenga un error, notará que Siri ofrece otra aplicación de reserva de viajes.
VER: El legado de Siri: cómo la próxima generación de robots cambiará la forma de hacer negocios (Tecnopedia)
Prueba SiriKit
Espero que comprenda mejor cómo usar SiriKit en una aplicación iOS 10 para extender la experiencia del usuario más allá de la aplicación. Comparta sus opiniones y consejos sobre el uso de SiriKit en la discusión del artículo.