Quindi, al fine di ottenere anche notifiche locali su Aiwass, dobbiamo chiedere all'utente l'autorizzazione e per questo possiamo usare
un altro pacchetto che installiamo tutti con XPO install.
E questo è il pacchetto di autorizzazioni di Expo.
Il pacchetto di autorizzazioni di Expo, come suggerisce il nome, ci aiuta a gestire le autorizzazioni.
Ci aiuta a richiedere le autorizzazioni e a lavorare con le autorizzazioni.
Quindi una volta installato nell'app G. S. o in qualsiasi altro file in cui desideri ottenere tali autorizzazioni.
Ma qui abbiamo solo un componente.
Importiamo semplicemente tutto come permessi dalle autorizzazioni esplic.
Proprio così.
E con questo importato, dobbiamo chiedere all'utente l'autorizzazione per mostrare le notifiche prima di provare a
farlo.
Ora dipende dalla tua applicazione.
Quando vuoi chiedere all'utente, forse vuoi chiedere quando l'app viene avviata.
Forse un momento migliore è meglio.
Dopo tutto, vuoi chiedere le autorizzazioni quando è molto probabile che l'utente ti dia l'autorizzazione.
In questo momento, Yeater lo farà correttamente all'avvio dell'app.
Quindi effettivamente importerò D.
Di fatto, hai preso qui da reagire.
In modo che possiamo eseguire la logica quando questo componente si monta semplicemente passando un array di dipendenze vuoto qui
e lì.
Ora voglio usare questo oggetto di autorizzazione, che importiamo quest'anno, prima di tutto, per controllare
lo stato delle autorizzazioni e, successivamente, se non abbiamo l'autorizzazione per richiederlo.
Pertanto, qui possiamo chiamare get async per verificare innanzitutto lo stato delle autorizzazioni correnti.
Ora dobbiamo specificare per quale autorizzazione.
Vogliamo ottenere tali informazioni.
E possiamo quindi accedere alle autorizzazioni, avviare le notifiche, le fruste e tutti i limiti, tuttavia, per verificare
come lo stato delle autorizzazioni correnti è per le autorizzazioni di notifica su Android.
Questo non farà nulla su Aiwass.
Scoprirà se siamo già autorizzati a inviare autorizzazioni.
Ora, questo è un compito asincrono e quindi ci dà una promessa.
Quindi possiamo usare quindi qui per procedere.
Ora qui, avremo lo stato di tale autorizzazione.
Quindi avremo informazioni sul fatto che abbiamo l'autorizzazione per inviare notifiche o meno.
Ora possiamo verificare quale stato abbiamo ottenuto.
Ci sono un paio di possibili valori qui, ma alla fine siamo interessati allo status concesso se
ottenessimo lo status di papà.
Non abbiamo bisogno di continuare.
Ma se non dobbiamo ancora concedere questo status, vogliamo chiedere l'autorizzazione perché non ci sono state concesse
tali autorizzazioni prima.
Quindi ora possiamo usare di nuovo l'oggetto autorizzazioni.
Ma questa volta chiamiamo ask async prima di controllare lo stato.
Ora stiamo chiedendo un nuovo permesso, perché ora sappiamo che non abbiamo ancora il permesso di cui abbiamo
bisogno.
Quindi ora eccoci di nuovo ad accedere alle autorizzazioni, alle notifiche di pensiero.
E ora questo richiederà tale permesso.
Questo restituirà una promessa.
Quindi possiamo complessivamente restituirlo qui per rimanere in questa catena di promesse, che abbiamo iniziato qui.
E quindi, ora qui possiamo usare di nuovo, quindi puoi usare anche async wait.
Ma in pratica, non dovresti rendere la disfunzione asincrona.
Invece, dovresti racchiuderlo in una nuova funzione, che esegui immediatamente come nota a
margine.
Ma qui userà il buon vecchio.
Quindi prendere e raggiungerà la funzione in questo.
Quindi bloccare dopo che Aske Async ha terminato.
Ora di nuovo qui otterrà lo stato.
Perché ovviamente, solo perché lo stiamo chiedendo non significa che stiamo ottenendo il permesso.
Quindi l'utente potrebbe ancora negare un'autorizzazione e in questo caso non c'è nulla che possiamo fare.
Quindi ora vogliamo controllare questo stato e scoprire se non è ancora concesso.
E se è così, allora, come ho detto, non c'è niente che possiamo fare.
Quindi qui possiamo solo tornare.
Potremmo mostrare un messaggio all'utente.
Potremmo mostrare un avviso che ora non possiamo inviare alcuna notifica.
Ma alla fine, non c'è niente che possiamo fare qui.
Se lo stato è concesso, però, allora siamo a posto.
Ora, in entrambi i casi, possiamo sicuramente programmare una notifica, perché lo scenario peggiore è che non abbiamo
autorizzazioni e quindi non succede nulla.
Ma ora che lo stiamo chiedendo, lo scenario migliore è che abbiamo ottenuto l'autorizzazione.
E Dale per quest'anno avrà successo.
No, in realtà devo intervenire qui.
Questo codice ha un errore.
Non otteniamo la stringa di stato come questa qui.
Invece, otteniamo l'oggetto status, che quindi ha una proprietà status e lo stesso del caso qui.
Non abbiamo mai avuto un errore prima perché anche se tecnicamente il nostro codice non funzionava, abbiamo ancora
richiesto l'autorizzazione.
Ma ora questo controlla correttamente se abbiamo l'autorizzazione.
Inoltre, dobbiamo anche regolarlo in un altro posto qui.
Se avessimo già avuto il permesso, ovviamente, ci verrà concesso come risposta qui, si spera, e non
lo chiederemo più.
Ciò significa che nel prossimo blocco abbiamo un problema, tuttavia, perché ora ci aspettiamo di ottenere il nostro
stato come oggetto.
Ma dal momento che non abbiamo chiesto di nuovo perché non avevamo bisogno di non ottenere quell'oggetto qui.
Quindi l'accesso allo stato fallirà.
E penseremo che non abbiamo ottenuto il permesso anche se lo abbiamo.
Quindi qui dovremmo restituire prima l'oggetto di stato, quindi bloccare.
In modo che nel prossimo blocco sia un modo responsabile per i casi in cui avevamo già il permesso.
Questa è una modifica che dovresti implementare per assicurarti che la tua applicazione rilevi correttamente le sue notifiche e lo
stato delle autorizzazioni e non pensi di non avere le autorizzazioni quando le ha effettivamente.
Quindi ora sicurezza.
E assicurati di riavviarlo sul tuo simulatore iPhone.
E ora proprio all'inizio, mi viene chiesto se voglio concedere questa autorizzazione a causa di quel codice che abbiamo
appena aggiunto.
E se ora facciamo clic su Consenti qui e attiviamo una notifica e chiudiamo l'applicazione, vediamo se
ora funziona qui su Aiwass.
Aspettiamo che passino i 10 secondi.
Ed ecco la nostra prima notifica locale inviata dalla nostra app.
E ora abbiamo funzionato su ISIS e Android.
E proprio come su Android, se facciamo clic su una notifica qui.
Possiamo aprire la nostra app, quindi funziona.
Ora, una cosa che non ha funzionato o in cui non è successo nulla è stata quando l'app è in primo piano.
Ora, in alcuni casi, questo è il comportamento che desideri.
In alcuni casi, se l'app è aperta, non mostrare la notifica potrebbe andare assolutamente bene.
Ma se torno all'esempio dell'app promemoria, solo perché è in primo piano potrebbe non significare
che non vuoi far sapere all'utente che è necessario un compito.
Quindi, lascia che ti mostri ora come gestire le notifiche se l'app è in primo piano.