En iOS 10, los desarrolladores pueden usar SiriKit para añadir interacción de voz a sus aplicaciones. Siga este recorrido para añadir la integración Siri a las aplicaciones iOS 10.
iOS 10 fecha de lanzamiento característica roundupToday es el día de iOS 10 en todos los dispositivos elegibles! Eche un vistazo rápido a algunas de las nuevas funciones.
Una de las últimas fronteras para las extensiones de aplicaciones móviles fue la capacidad de interactuar con Siri; muchos desarrolladores han querido esta funcionalidad durante años. Ahora eso es posible con SiriKit.
SiriKit, que fue lanzado en WWDC 2019, es una forma de que los desarrolladores añadan la interacción de voz a través de Siri en sus aplicaciones iOS 10. Esto se hace a través del uso de Intents y el paradigma de extensión de la aplicación que fue lanzado dentro de iOS 8; este proceso proporciona una forma segura para que las aplicaciones toquen las características del sistema y ofrece al usuario características ajenas a la aplicación.
He aquí un resumen de lo que son las intenciones y cómo se pueden utilizar. Luego, crearemos una aplicación de ejemplo que muestra cómo mostrar una interfaz de usuario dentro de Siri desde tu extensión.
Mira: Siri de Apple: La guía de la persona inteligente (ConsejoTecnologico.com)
¿Qué son las intenciones?
Las intenciones son la forma en que su aplicación procesa la interacción del usuario y proporciona información a Siri y al usuario.
Hay dos componentes en Intents: la extensión de Intents y la extensión de Intents UI. La extensión Intents es un requisito, y es la forma en que su aplicación recibirá la información de la solicitud Siri para poder procesarla. La extensión de interfaz de usuario de Intents es un componente opcional que le permite proporcionar una interfaz visible dentro de Siri una vez que la extensión de Intents ha gestionado correctamente la interfaz.
Con Intents, los dominios (o tipos de aplicaciones) que se pueden usar con Siri incluyen:
- Llamadas VoIP
- Mensajería
- Pagos
- Fotos
- Ejercicios
- Reservas de paseos
- Comandos del coche
- CarPlay
- Reservas en restaurantes
Se espera que se añadan más dominios a Siri para proporcionar una amplia gama de flexibilidad a las aplicaciones habilitadas para Siri. Por ahora, su aplicación debe pertenecer a una de estas categorías para poder implementar Siri.
VER: Cómo usar aplicaciones de terceros con Siri (ConsejoTecnologico.com)
Cómo crear la aplicación de ejemplo
Vamos a crear una aplicación de ejemplo. Si aún no tiene un proyecto Xcode, cree un archivo de proyecto iOS utilizando la plantilla de vista única y, a continuación, siga estos pasos 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 objetivo o seleccione Archivo | Nuevo | Objetivo.
- En el selector de plantillas, seleccione Extensión de intenciones y, a continuación, haga clic en Siguiente.
- En este nuevo panel (), nombraremos la extensión MyIntent. Además, si es necesario, asegúrese de que la casilla de verificación Incluir extensión de interfaz de usuario esté marcada; esto creará automáticamente la extensión de interfaz de usuario de intención junto con la extensión de intención.
- Haga clic en Finalizar.
Una vez creados los objetivos, verá dos nuevas carpetas en el navegador del proyecto: Mi intención y mi intención. Ambas carpetas tienen un Info.plist y un archivo rápido para la fuente; sin embargo, la extensión de interfaz de usuario de Intent tiene un archivo de storyboard y un controlador de vista .
Lo último que hay que configurar en el proyecto es asegurarse de que Siri está habilitado en la pestaña Capacidades. Seleccione el archivo de proyecto en el navegador, seleccione el objetivo de iOS y, a continuación, la ficha Capacidades. Ponga el interruptor de Siri en la posición ON.
Cómo registrar las intenciones
El registro de una intención es un proceso de dos partes. Al registrar una intención, le estás diciendo a Siri qué acciones puede realizar tu aplicación a través de Siri. Visita la página de desarrolladores de Apple para ver las intenciones de SiriKit para encontrar los nombres de las intenciones que se pueden registrar.
La primera parte de este proceso de registro es registrar la intención soportada dentro de Info.plist en el objetivo de la intención .
Usaremos el Intento 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 contiene las siguientes claves:
- INRequestRideIntentHandling
- INRequestRideIntent
- INRequestRideIntentResponse
La segunda parte de registrar Intents es abrir IntentHandler.swift dentro de la clase MyIntent. Dentro de esta clase, notará que se ajusta a diferentes protocolos basados en las Intenciones que fueron registradas en el Info.plist.
Edite el archivo IntentHandler.swift para que se vea como el siguiente:
Importar Intentsclass IntentHandler: INExtension, INRequestRideIntentHandling {suprimir manejador funcional (para intención: INIntent) -> Any {// Esta es la implementación por defecto. Si desea que diferentes objetos manejen diferentes Intenciones, puede anular esto y devolver el manejador que desea para esa intención en particular, return self}func handle(requestRide intent: INRequestRideIntent, finalización: @escaping (INRequestRideIntentResponse) -> Void) {let status = INRideStatus()status.rideIdentifier = "12345"let response = INRequestRideIntentResponse.init(code: .failure, userActivity: nil)response.rideStatus = statuscompletion(response)}}}.
Más información sobre Movilidad
En el manejador del ejemplo anterior, siempre que el usuario solicite reservar un viaje en Siri con la aplicación, responderá con un estado de falla ya que en realidad no tenemos un servicio de reservación. Este código es simplemente para demostrar cómo funciona este proceso y no para construir un servicio que funcione realmente.
Si desea incluir más funcionalidad, puede implementar tipos de intención adicionales. Consulte la documentación del desarrollador de Apple para obtener información sobre la conformidad del protocolo requerido para las distintas Intenciones compatibles con Siri.
En este proyecto de ejemplo, no utilizaremos la interfaz de usuario de Intents para proporcionar una interfaz al usuario.
VER: Cómo aprendimos a hablar con las computadoras y cómo aprendieron a responder (ConsejoTecnologico.com)
Cómo autorizar a la aplicación a trabajar con Siri
Una vez escrito el código del handler, lo único que queda es añadir el código a la aplicación iOS que permite la autorización. El primer paso es abrir el archivo Info.plist para la aplicación iOS y añadir la clave «NSSiriUsageDescription» con un valor String orientado al usuario que explica cómo se utiliza Siri en la aplicación y por qué la aplicación necesita autorización del usuario. Para esta aplicación de ejemplo, usaremos «Usa a Siri para reservar un viaje».
A continuación, en algún lugar del código de la aplicación iOS, deberá solicitar autorización a iOS y al usuario para utilizar Siri. Para esta aplicación de ejemplo, lo haremos en AppDelegate.swift en el método application:didFinishLaunchingWithOptions: añadiendo el siguiente código:
INPreferences.requestSiriAuthorization { (status: INSiriAuthorizationStatus) in// Manejar el estado de las autorizaciones Siri aquí}}.
Este bloque se volverá a llamar cuando se complete la autorización y le permitirá comprobar el estado para ver si el usuario autorizó la aplicación para trabajar con Siri. Cuando llame desde su código iOS, no olvide importar el marco de trabajo Intents.
Es hora de ejecutar la aplicación y ver si podemos obtener una respuesta de Siri (estábamos buscando una respuesta de falla cuando solicitamos reservar un viaje. Construya y ejecute la aplicación en un dispositivo y, a continuación, abra la aplicación y conceda la autorización con Siri. A continuación, abre Siri y di «Reservar un viaje con[App Name]» donde App Name es el nombre de la aplicación que has creado. Al hacer esto y obtener un error, te darás cuenta de que Siri ofrece otra aplicación de reserva de viajes.
VER: El legado de Siri: Cómo los robots de nueva generación cambiarán la forma de hacer negocios (ConsejoTecnologico.com)
Pruebe SiriKit
Espero que tengas un mejor entendimiento de cómo usar SiriKit dentro de tus aplicaciones iOS 10 para extender la experiencia del usuario fuera de tus aplicaciones. Por favor, comparta sus ideas y consejos sobre el uso de SiriKit en la discusión del artículo.
Boletín semanal de Apple
Ya sea que necesites consejos sobre iPhone y Mac o noticias de Apple específicas de la empresa, nosotros te cubrimos. Entregado los martes