La tecnologia push è uno dei modi più rapidi per fornire notifiche agli utenti della vostra applicazione. Per riceverle, l'utente non deve compiere alcuna azione; esse vengono avviate sul lato server e appaiono direttamente nella barra di notifica sullo schermo del dispositivo mobile. In questa lezione capiremo come implementare le notifiche push nelle applicazioni costruite sulla piattaforma AppMaster.
Send Push blocco
Per inviare notifiche push, Send Push si utilizzano blocchi che corrispondono al sistema operativo del dispositivo di destinazione (iOS o Android).
Ottenere Push Token e Bundle ID
Per eseguire un invio, è necessario specificare almeno due parametri: Push Token e IOS (Android) Bundle ID. Pertanto, vale la pena iniziare la parte preparatoria e capire come ottenere questi parametri.
Per impostazione predefinita, il database di ogni progetto contiene un modello Mobile Instance che è collegato al modello User e contiene i campi richiesti: push_token e bundle_id.
Creiamo un processo aziendale separato per l'applicazione mobile, che costituirà il modello completato. Mobile Instance modello. Per ottenere un token push, usare il blocco Get Push Token .
Il passo successivo è ottenere informazioni sul dispositivo. A seconda del sistema operativo, saranno necessari blocchi diversi. Pertanto, per determinare il sistema operativo, è necessario utilizzare il blocco Platform Switch .
A seconda del risultato, il blocco corrispondente IOS Device Info o Android Device Info viene utilizzato il blocco corrispondente. Da qui è possibile ottenere una serie di informazioni sul dispositivo, ma nel nostro esempio è sufficiente scoprire solo i dati relativi al sistema operativo. Bundle ID.
Dopo aver raccolto tutti i dati, è possibile formare un Mobile Instance indicare il sistema operativo a cui appartiene e passarlo come parametro di output del processo aziendale.
Registrazione delle informazioni sul dispositivo mobile dell'utente
Il passo successivo consiste nel creare un processo aziendale di backend per collegare il dispositivo generato a un utente specifico e registrare le informazioni sul dispositivo mobile dell'utente. Mobile Instance con un utente specifico e registrarlo nel database. Questo processo aziendale richiede quanto segue:
- Individuare l'utente corrente utilizzando il blocco Auth: Get current user blocco.
- Espandere il contenuto del modello Mobile Instance modello risultante.
- Riassemblare il modello e aggiungervi una connessione utente utilizzando il blocco Make Mobile Instance .
- Utilizzare il DB: Create Mobile Instance e salvare i dati nel database.
Nel POST /Mobile Instance/ endpoint, si può sostituire il processo aziendale standard con quello appena creato.
L'ultima fase della preparazione consiste nel decidere quando esattamente è opportuno scrivere le informazioni sul dispositivo dell'utente nel database. La soluzione logica sarebbe quella di farlo quando si esegue l'autorizzazione nell'applicazione. A tal fine, subito dopo il blocco Set Auth Token è necessario aggiungere al processo di autorizzazione dell'utente nell'applicazione mobile due nuovi blocchi con processi aziendali precedentemente creati. Il primo riceve e genera le informazioni necessarie, mentre il secondo crea una connessione con l'utente e scrive sul database.
Invio di notifiche push
La parte preparatoria è completata e si può iniziare a inviare notifiche push. Per farlo, creeremo un processo aziendale backend. Immaginiamo che il nostro compito sia quello di inviare una notifica a tutti gli utenti della nostra applicazione. Le invieremo solo ai dispositivi con il sistema operativo Android e non a tutti i dispositivi dell'utente, ma solo a quello utilizzato per ultimo.
Cominciamo con i parametri di input. È necessario trasferire il testo della notifica stessa. È composto da tre parti: il corpo del messaggio (body), il titolo (title) e il sottotitolo (subtitle).
Successivamente, è necessario trovare tutti gli utenti dell'applicazione. Per farlo, utilizzare il blocco Search User e impostare i parametri necessari:
- _With = Mobile Instances (è necessario ottenere non solo informazioni sull'utente, ma anche sul dispositivo mobile ad esso associato)
- Limit = -1 (per impostazione predefinita, la query restituisce 25 record; "-1" è specificato per rimuovere questo limite e ottenere tutti gli utenti)
- _mobile_instances_os = Android (in base alle condizioni del compito, siamo interessati solo ai dispositivi Android )
Per l'array di utenti generato, è necessario eseguire un ciclo di operazioni (For each loop blocco)
Per ogni utente del Expand User è necessario ottenere informazioni sui dispositivi mobili (Mobile Instances). Abbiamo bisogno di inviare una notifica a un solo dispositivo, quindi impostiamo index = 0 nel blocco Array Element e controlliamo anche che l'array contenga almeno un elemento (dopo tutto, un utente può avere solo un dispositivo iOS ). Per farlo, controlliamo la validità dell'elemento, passiamo il valore dell'indice valido al blocco If-Else e continuiamo il ciclo solo se il valore è true.
Se tutto è corretto e vengono trovate informazioni sul dispositivo dell'utente, è necessario utilizzare il blocco Expand Mobile Instance e passare i valori necessari al blocco Send Push (Android) al blocco.
Si noti che quando si sviluppa e si testa un'applicazione nell'ambiente di lavoro Developer Appè necessario impostare il parametro Developer Mode = True.
È possibile utilizzare anche l'opzione TTL (Time to live) . Definisce il tempo in secondi per l'invio della notifica. Se la notifica non può essere consegnata immediatamente, ad esempio se l'utente è temporaneamente fuori dal raggio d'azione, verranno effettuati ripetuti tentativi di consegna al tempo assegnato.
Al termine del ciclo e dell'invio delle notifiche a tutti i possibili utenti, anche il lavoro del processo aziendale è completato.
Parametri aggiuntivi
A parte, vale la pena di discutere i parametri aggiuntivi del blocco di invio:
- Push ID
- Push Class
- Data
Essi non influiscono sull'invio di una notifica o sul suo contenuto, ma possono essere utilizzati durante l'elaborazione di una notifica da parte dell'utente. L'applicazione mobile dispone di trigger speciali che vengono attivati quando viene ricevuta o cliccata una notifica push.
I trigger delle notifiche push contengono i dati dei parametri di testo aggiuntivi di cui sopra. Come esempio, possiamo fornire il processo più semplice, che, quando il trigger viene cliccato, visualizzerà un'ulteriore notifica sullo schermo con le informazioni passate nel parametro Data .
Un altro caso d'uso molto diffuso dei trigger è quello di raccogliere informazioni sulla consegna delle notifiche. Ad esempio, possono inviare un messaggio al server che attesta che una notifica Push è stata effettivamente consegnata, nonché raccogliere statistiche e contare il numero di clic sulle notifiche.