1 00:00:02,280 --> 00:00:10,380 Quindi, al fine di ottenere anche notifiche locali su Aiwass, dobbiamo chiedere all'utente l'autorizzazione e per questo possiamo usare 2 00:00:10,380 --> 00:00:14,610 un altro pacchetto che installiamo tutti con XPO install. 3 00:00:14,940 --> 00:00:17,690 E questo è il pacchetto di autorizzazioni di Expo. 4 00:00:17,960 --> 00:00:23,430 Il pacchetto di autorizzazioni di Expo, come suggerisce il nome, ci aiuta a gestire le autorizzazioni. 5 00:00:23,550 --> 00:00:26,790 Ci aiuta a richiedere le autorizzazioni e a lavorare con le autorizzazioni. 6 00:00:27,660 --> 00:00:35,460 Quindi una volta installato nell'app G. S. o in qualsiasi altro file in cui desideri ottenere tali autorizzazioni. 7 00:00:35,490 --> 00:00:37,740 Ma qui abbiamo solo un componente. 8 00:00:38,400 --> 00:00:43,920 Importiamo semplicemente tutto come permessi dalle autorizzazioni esplic. 9 00:00:44,040 --> 00:00:44,760 Proprio così. 10 00:00:45,600 --> 00:00:52,350 E con questo importato, dobbiamo chiedere all'utente l'autorizzazione per mostrare le notifiche prima di provare a 11 00:00:52,350 --> 00:00:52,920 farlo. 12 00:00:53,430 --> 00:00:55,890 Ora dipende dalla tua applicazione. 13 00:00:56,010 --> 00:01:00,540 Quando vuoi chiedere all'utente, forse vuoi chiedere quando l'app viene avviata. 14 00:01:00,760 --> 00:01:03,210 Forse un momento migliore è meglio. 15 00:01:03,480 --> 00:01:08,760 Dopo tutto, vuoi chiedere le autorizzazioni quando è molto probabile che l'utente ti dia l'autorizzazione. 16 00:01:08,880 --> 00:01:11,970 In questo momento, Yeater lo farà correttamente all'avvio dell'app. 17 00:01:12,150 --> 00:01:14,300 Quindi effettivamente importerò D. 18 00:01:14,980 --> 00:01:17,730 Di fatto, hai preso qui da reagire. 19 00:01:19,580 --> 00:01:28,040 In modo che possiamo eseguire la logica quando questo componente si monta semplicemente passando un array di dipendenze vuoto qui 20 00:01:28,510 --> 00:01:29,360 e lì. 21 00:01:29,450 --> 00:01:35,990 Ora voglio usare questo oggetto di autorizzazione, che importiamo quest'anno, prima di tutto, per controllare 22 00:01:35,990 --> 00:01:41,300 lo stato delle autorizzazioni e, successivamente, se non abbiamo l'autorizzazione per richiederlo. 23 00:01:41,990 --> 00:01:47,840 Pertanto, qui possiamo chiamare get async per verificare innanzitutto lo stato delle autorizzazioni correnti. 24 00:01:48,380 --> 00:01:50,840 Ora dobbiamo specificare per quale autorizzazione. 25 00:01:50,840 --> 00:01:52,430 Vogliamo ottenere tali informazioni. 26 00:01:52,850 --> 00:01:59,330 E possiamo quindi accedere alle autorizzazioni, avviare le notifiche, le fruste e tutti i limiti, tuttavia, per verificare 27 00:01:59,330 --> 00:02:05,030 come lo stato delle autorizzazioni correnti è per le autorizzazioni di notifica su Android. 28 00:02:05,060 --> 00:02:06,560 Questo non farà nulla su Aiwass. 29 00:02:06,560 --> 00:02:10,310 Scoprirà se siamo già autorizzati a inviare autorizzazioni. 30 00:02:11,280 --> 00:02:14,400 Ora, questo è un compito asincrono e quindi ci dà una promessa. 31 00:02:14,730 --> 00:02:18,030 Quindi possiamo usare quindi qui per procedere. 32 00:02:18,840 --> 00:02:23,150 Ora qui, avremo lo stato di tale autorizzazione. 33 00:02:23,160 --> 00:02:28,410 Quindi avremo informazioni sul fatto che abbiamo l'autorizzazione per inviare notifiche o meno. 34 00:02:30,410 --> 00:02:32,600 Ora possiamo verificare quale stato abbiamo ottenuto. 35 00:02:33,500 --> 00:02:40,430 Ci sono un paio di possibili valori qui, ma alla fine siamo interessati allo status concesso se 36 00:02:40,430 --> 00:02:42,740 ottenessimo lo status di papà. 37 00:02:43,130 --> 00:02:44,960 Non abbiamo bisogno di continuare. 38 00:02:45,920 --> 00:02:52,910 Ma se non dobbiamo ancora concedere questo status, vogliamo chiedere l'autorizzazione perché non ci sono state concesse 39 00:02:52,910 --> 00:02:54,530 tali autorizzazioni prima. 40 00:02:55,100 --> 00:02:58,010 Quindi ora possiamo usare di nuovo l'oggetto autorizzazioni. 41 00:02:58,400 --> 00:03:04,040 Ma questa volta chiamiamo ask async prima di controllare lo stato. 42 00:03:04,190 --> 00:03:09,890 Ora stiamo chiedendo un nuovo permesso, perché ora sappiamo che non abbiamo ancora il permesso di cui abbiamo 43 00:03:09,890 --> 00:03:10,250 bisogno. 44 00:03:11,120 --> 00:03:14,830 Quindi ora eccoci di nuovo ad accedere alle autorizzazioni, alle notifiche di pensiero. 45 00:03:15,170 --> 00:03:17,840 E ora questo richiederà tale permesso. 46 00:03:18,590 --> 00:03:19,820 Questo restituirà una promessa. 47 00:03:19,910 --> 00:03:24,740 Quindi possiamo complessivamente restituirlo qui per rimanere in questa catena di promesse, che abbiamo iniziato qui. 48 00:03:26,140 --> 00:03:30,460 E quindi, ora qui possiamo usare di nuovo, quindi puoi usare anche async wait. 49 00:03:30,610 --> 00:03:33,950 Ma in pratica, non dovresti rendere la disfunzione asincrona. 50 00:03:34,270 --> 00:03:38,890 Invece, dovresti racchiuderlo in una nuova funzione, che esegui immediatamente come nota a 51 00:03:38,890 --> 00:03:39,430 margine. 52 00:03:39,820 --> 00:03:41,080 Ma qui userà il buon vecchio. 53 00:03:41,170 --> 00:03:43,930 Quindi prendere e raggiungerà la funzione in questo. 54 00:03:43,990 --> 00:03:47,680 Quindi bloccare dopo che Aske Async ha terminato. 55 00:03:48,520 --> 00:03:50,580 Ora di nuovo qui otterrà lo stato. 56 00:03:50,800 --> 00:03:55,840 Perché ovviamente, solo perché lo stiamo chiedendo non significa che stiamo ottenendo il permesso. 57 00:03:56,170 --> 00:04:00,370 Quindi l'utente potrebbe ancora negare un'autorizzazione e in questo caso non c'è nulla che possiamo fare. 58 00:04:00,910 --> 00:04:05,590 Quindi ora vogliamo controllare questo stato e scoprire se non è ancora concesso. 59 00:04:05,950 --> 00:04:10,120 E se è così, allora, come ho detto, non c'è niente che possiamo fare. 60 00:04:10,420 --> 00:04:11,890 Quindi qui possiamo solo tornare. 61 00:04:12,070 --> 00:04:13,750 Potremmo mostrare un messaggio all'utente. 62 00:04:13,770 --> 00:04:19,570 Potremmo mostrare un avviso che ora non possiamo inviare alcuna notifica. 63 00:04:19,720 --> 00:04:21,910 Ma alla fine, non c'è niente che possiamo fare qui. 64 00:04:22,420 --> 00:04:25,570 Se lo stato è concesso, però, allora siamo a posto. 65 00:04:26,530 --> 00:04:33,040 Ora, in entrambi i casi, possiamo sicuramente programmare una notifica, perché lo scenario peggiore è che non abbiamo 66 00:04:33,040 --> 00:04:35,530 autorizzazioni e quindi non succede nulla. 67 00:04:36,010 --> 00:04:40,720 Ma ora che lo stiamo chiedendo, lo scenario migliore è che abbiamo ottenuto l'autorizzazione. 68 00:04:40,900 --> 00:04:43,360 E Dale per quest'anno avrà successo. 69 00:04:45,100 --> 00:04:46,690 No, in realtà devo intervenire qui. 70 00:04:46,840 --> 00:04:48,940 Questo codice ha un errore. 71 00:04:49,390 --> 00:04:52,000 Non otteniamo la stringa di stato come questa qui. 72 00:04:52,060 --> 00:04:59,170 Invece, otteniamo l'oggetto status, che quindi ha una proprietà status e lo stesso del caso qui. 73 00:05:00,730 --> 00:05:06,550 Non abbiamo mai avuto un errore prima perché anche se tecnicamente il nostro codice non funzionava, abbiamo ancora 74 00:05:06,640 --> 00:05:07,570 richiesto l'autorizzazione. 75 00:05:07,930 --> 00:05:11,080 Ma ora questo controlla correttamente se abbiamo l'autorizzazione. 76 00:05:11,500 --> 00:05:16,930 Inoltre, dobbiamo anche regolarlo in un altro posto qui. 77 00:05:17,140 --> 00:05:23,290 Se avessimo già avuto il permesso, ovviamente, ci verrà concesso come risposta qui, si spera, e non 78 00:05:23,410 --> 00:05:24,850 lo chiederemo più. 79 00:05:25,120 --> 00:05:31,690 Ciò significa che nel prossimo blocco abbiamo un problema, tuttavia, perché ora ci aspettiamo di ottenere il nostro 80 00:05:31,720 --> 00:05:32,950 stato come oggetto. 81 00:05:33,100 --> 00:05:38,800 Ma dal momento che non abbiamo chiesto di nuovo perché non avevamo bisogno di non ottenere quell'oggetto qui. 82 00:05:39,100 --> 00:05:41,560 Quindi l'accesso allo stato fallirà. 83 00:05:41,650 --> 00:05:45,280 E penseremo che non abbiamo ottenuto il permesso anche se lo abbiamo. 84 00:05:45,850 --> 00:05:51,850 Quindi qui dovremmo restituire prima l'oggetto di stato, quindi bloccare. 85 00:05:52,000 --> 00:05:57,430 In modo che nel prossimo blocco sia un modo responsabile per i casi in cui avevamo già il permesso. 86 00:05:57,970 --> 00:06:04,780 Questa è una modifica che dovresti implementare per assicurarti che la tua applicazione rilevi correttamente le sue notifiche e lo 87 00:06:04,780 --> 00:06:10,510 stato delle autorizzazioni e non pensi di non avere le autorizzazioni quando le ha effettivamente. 88 00:06:10,930 --> 00:06:12,190 Quindi ora sicurezza. 89 00:06:16,810 --> 00:06:20,890 E assicurati di riavviarlo sul tuo simulatore iPhone. 90 00:06:21,190 --> 00:06:26,050 E ora proprio all'inizio, mi viene chiesto se voglio concedere questa autorizzazione a causa di quel codice che abbiamo 91 00:06:26,080 --> 00:06:26,850 appena aggiunto. 92 00:06:27,520 --> 00:06:34,240 E se ora facciamo clic su Consenti qui e attiviamo una notifica e chiudiamo l'applicazione, vediamo se 93 00:06:34,240 --> 00:06:36,460 ora funziona qui su Aiwass. 94 00:06:36,850 --> 00:06:39,760 Aspettiamo che passino i 10 secondi. 95 00:06:40,570 --> 00:06:45,190 Ed ecco la nostra prima notifica locale inviata dalla nostra app. 96 00:06:45,760 --> 00:06:48,920 E ora abbiamo funzionato su ISIS e Android. 97 00:06:49,420 --> 00:06:52,870 E proprio come su Android, se facciamo clic su una notifica qui. 98 00:06:54,340 --> 00:06:57,460 Possiamo aprire la nostra app, quindi funziona. 99 00:06:57,760 --> 00:07:05,110 Ora, una cosa che non ha funzionato o in cui non è successo nulla è stata quando l'app è in primo piano. 100 00:07:05,620 --> 00:07:08,200 Ora, in alcuni casi, questo è il comportamento che desideri. 101 00:07:08,440 --> 00:07:13,950 In alcuni casi, se l'app è aperta, non mostrare la notifica potrebbe andare assolutamente bene. 102 00:07:14,530 --> 00:07:20,920 Ma se torno all'esempio dell'app promemoria, solo perché è in primo piano potrebbe non significare 103 00:07:20,920 --> 00:07:25,650 che non vuoi far sapere all'utente che è necessario un compito. 104 00:07:26,110 --> 00:07:32,620 Quindi, lascia che ti mostri ora come gestire le notifiche se l'app è in primo piano.