Aitor Sánchez - Blog - Nov. 2, 2023, 11:42 a.m.
¿Neceistas qué tu usuario pueda lanzar eventos en iOS a través de la api de Siri Shortcuts para Ionic? O, tal vez ya sabes cómo se hace, pero aún te falta que conocer algún detalle de sus funciones o campos para que funcione correctamente ¿verdad?
Mi nombre es Aitor Sánchez, soy desarrollador de apps desde 2014, Y en este artículo aprenderás, de manera sencilla y totalmente eficiente, a que tu usuario registre atajos en iOS para que sean lanzados por Siri cuando, y cómo, dicho usuario lo crea oportuno.
Pero antes de continuar, esta es la Flutter Mafia. Es mi newsletter donde tu vas a aprender a hacer apps y a ganar dinero con ellas junto con otros genietes que ya están dentro. Y si te suscribes te regalo mi ebook "Duplica los ingreso de tus apps en 5 minutos" No es broma, quizás te interese.
Y ahora si, comenzamos. Let´s go!
Cómo su propio nombre indica, nos permite registrar shortcuts (atajos) para Siri desde nuestra aplicación. Es un sistema sencillo cómo veremos a continuación y únicamente podrá usarse a partir de la versión 12.0 de iOS.
También es importante conocer que únicamente funcionarán si la app es compilada desde XCode 10 o superior.
El primer paso que tenemos que dar, igual que con cualquier componente que esté fuera del core de Ionic, es instalarlo en nuestra aplicación para poder hacer uso de él.
Para ello vamos a usar las siguientes dos líneas de consola:
$ ionic cordova plugin add cordova-plugin-siri-shortcuts
$ npm install --save @ionic-native/siri-shortcuts
La primera instalará el plugin de Cordova de Siri Shortcuts Ionic que permitirá a nuestra app la comunicación con la parte nativa del sistema donde se esté ejecutando.
La segunda instalará el código TS necesario para que nos podamos comunicar desde nuestro código con el plugin de Cordova.
Al igual que el punto anterior, al tratarse de un componente fuera del core, tenemos que agregarlo a los provders de la app para hacerlo funcionar. Para ello nos dirigimos al archivo "app.module.ts" y agregaremos lo siguiente:
import { SiriShortcuts } from '@ionic-native/siri-shortcuts';
...
providers: [
...,
SiriShortcuts,
...
]
...
Aunque estoy seguro de que ya lo habrás intuido, solo es soportado por la siguiente plataforma:
Bien, ya llegamos a lo que nos interesa. Cómo en la mayoría de tutoriales, vamos a ver el código y después comentamos lo que hemos hecho en la parte de debajo de este. ¡Vamos con ello!
import { SiriShortcuts } from '@ionic-native/siri-shortcuts';
constructor(private siriShortcuts: SiriShortcuts) { }
...
this.siriShortcuts.donate({
persistentIdentifier: 'open-my-app',
title: 'Open my app',
suggestedInvocationPhrase: 'Open my app',
userInfo: { username: 'username' },
isEligibleForSearch: true,
isEligibleForPrediction: true,
})
.then(() => console.log('Shortcut donated.'))
.catch((error: any) => console.error(error));
this.siriShortcuts.present({
persistentIdentifier: 'open-my-app',
title: 'Open my app',
suggestedInvocationPhrase: 'Open my app',
userInfo: { username: 'username' },
})
.then(() => console.log('Shortcut added.'))
.catch((error: any) => console.error(error));
this.siriShortcuts.remove('open-my-app')
.then(() => console.log('Shortcut removed.'))
.catch((error: any) => console.error(error));
this.siriShortcuts.removeAll()
.then(() => console.log('All shortcuts removed removed.'))
.catch((error: any) => console.error(error));
this.siriShortcuts.getActivatedShortcut()
.then((data: SiriShortcut|null) => console.log(data))
.catch((error: any) => console.error(error));
En primer lugar, importaremos la clase "SiriShortcuts" del paquete "@ionic-native/siri-shortcuts" para poder hacer uso de esta.
Posteriormente inyectaremos una instancia a través del constructor de nuestra clase. Recuerda que, si no se ha realizado el paso de configuración, aquí la aplicación fallará.
En el orden en el que están, vamos a comentar lo que hace cada una de las funciones aunque ahora lo veremos también en la siguiente sección:
Y hasta aquí la explicación práctica de Siri Shortcuts Ionic. Espero que te haya quedado más o menos claro. Ahora pasaremos a profundizar más en los campos y funciones, pero con lo que has visto ya, podrías implementarlo perfectamente.
Bien, ahora pasaremos a ver los campos y las funciones de la clase que estamos tratando. Recuerda, aquí no se incluirá ninguno que tenga que ver con los padres del componente.
Esta función nos permite registrar, o mejor dicho donar, un shortcut a Siri para que ella realice la acción que le vamos a pasar cómo parámetro que hemos visto en el ejemplo.
Retorna una promesa que tenemos que controlar. No llevará nada consigo pero nos permitirá conocer si todo ha salido bien. A parte, cómo hemos visto en el ejemplo, también es recomendable controlar el error para así conocer si algo no ha ido bien.
Nos permite mostrar al usuario un PopUp con la información del atajo y cómo está configurado.
Devuelve una promesa que tenemos que controlar, al resolverse nos avisará de que el PopUp ha sido mostrado.
Elimina del sistema los atajos con el identificador solicitado.
Retornará una promesa que tenemos que controlar. Cuando se resuelva sabremos que el sistema ha terminado de realizar la acción.
Elimina todos los atajos que tengamos registrados en el sistema. Aunque creo que se sobre entiende, solo serán eliminados los que hayan sido creados desde la aplicación.
Retorna una promesa que tenemos que controlar. Cuando se resuelva sabremos que la acción ha terminado de realizarse.
Nos permite conocer si el usuario ha iniciado la aplicación desde un shortcut, y en caso de que así sea, nos permite conocer cuál ha sido.
Retorna una promesa que tenemos que controlar. Con ella llegará una instancia de la clase "SiriShortCut" que veremos ahora los campos que tienes, pero que nos permite conocer cómo ha accedido el usuario a la app. O null, en caso de que no haya usado este camino para entrar.
Mira, en el momento que tu mejoras el logo de una app que tengas publicada en Google Play, las descargas y los ingresos que esta aplicación genera aumentan. Esto es así. Mejor logo es igual a más dinero.
Basándonos en esto, hemos creado esta herramienta que te permite evaluar, optimizar y mejorar los logos de tus apps para que reciban más descargas. No te quiero espoilear, dentro hay un video explicativo. Entra en el enlace.
Y sin más, me despido ya. Espero haberte ayudado y nos vemos en el siguiente artículo. Hasta entonces ¡que te vaya bien!