1 00:00:02,100 --> 00:00:07,110 Ora questa applicazione React Native è stata creata con l'aiuto di Expo, come sapete. Ora, come ho accennato all'inizio del 2 00:00:07,110 --> 00:00:12,690 corso, questa è ancora una normale applicazione React Native, quindi esporre solo come un 3 00:00:12,690 --> 00:00:19,170 wrapper extra che offre molte funzionalità utili che rendono la costruzione di questa app più semplice 4 00:00:19,170 --> 00:00:20,820 ed è come 5 00:00:20,820 --> 00:00:27,770 una shell, un'app in cui viene eseguita la nostra app che rende quindi più semplice e soprattutto 6 00:00:27,780 --> 00:00:31,860 più facile da attingere a molte funzionalità dei dispositivi nativi. 7 00:00:31,860 --> 00:00:37,380 Ora, come ho già detto all'inizio di questo modulo, in un modulo separato ti mostrerò come 8 00:00:37,380 --> 00:00:40,590 aggiungere funzionalità del dispositivo nativo alle app non expo 9 00:00:40,890 --> 00:00:46,170 ma in realtà, se non hai un motivo per non utilizzare expo, vorrei ti consiglio vivamente 10 00:00:46,170 --> 00:00:53,400 di usarlo perché expo se controlli i loro documenti, ha molte funzionalità integrate e molti moduli nativi incorporati che puoi usare, quindi 11 00:00:53,400 --> 00:00:54,570 puoi aggiungere facilmente 12 00:00:54,570 --> 00:00:56,460 funzionalità di dispositivi nativi e 13 00:00:57,090 --> 00:01:01,620 visualizzare un elenco completo qui andando alla documentazione e lì al riferimento API. 14 00:01:01,620 --> 00:01:07,650 Qui vedi un sacco di cose che puoi aggiungere alla tua app e queste sono per 15 00:01:08,070 --> 00:01:11,220 lo più funzionalità del dispositivo nativo che sono tutte 16 00:01:11,340 --> 00:01:16,770 fornite dall'Expo out of the box, quindi dovrai comunque installare qualcosa ma non dovrai 17 00:01:16,770 --> 00:01:23,700 fare alcun manuale configurazione e come vedrai nella creazione di un'app senza modulo expo, potrebbe esserci qualche configurazione che 18 00:01:23,790 --> 00:01:30,270 potresti dover fare se aggiungi moduli nativi, pacchetti di funzionalità del dispositivo nativo a un'app non expo, 19 00:01:30,270 --> 00:01:32,560 quindi è davvero dolce Qui. 20 00:01:32,650 --> 00:01:38,360 Ora voglio usare una fotocamera e in effetti c'è un pacchetto fotocamera che è possibile aggiungere. 21 00:01:38,610 --> 00:01:42,510 Potremmo effettivamente utilizzarlo per accedere alla fotocamera del dispositivo, 22 00:01:42,510 --> 00:01:43,620 questo è 23 00:01:43,620 --> 00:01:49,620 perfetto se devi creare un'applicazione che deve davvero fare molto con la fotocamera, se stai 24 00:01:49,620 --> 00:01:55,440 costruendo come Instagram, come un'applicazione in cui vuoi davvero controllare l'intero schermo della fotocamera e 25 00:01:55,440 --> 00:02:00,760 l'intero flusso della fotocamera, in realtà non è quello che voglio fare qui. 26 00:02:00,780 --> 00:02:02,960 Voglio usare la normale fotocamera del dispositivo, 27 00:02:02,970 --> 00:02:04,660 non ho bisogno di qualcosa 28 00:02:04,740 --> 00:02:08,150 di speciale lì, mi interessa solo ottenere un'immagine che l'utente possa scattare 29 00:02:08,230 --> 00:02:13,620 e per questo effettivamente otteniamo il selettore di immagini. Questo ci consente anche di utilizzare la fotocamera del dispositivo, ma 30 00:02:13,620 --> 00:02:16,200 non ci consente di personalizzare la fotocamera così tanto, ma 31 00:02:16,200 --> 00:02:18,450 è esattamente quello che mi serve qui. 32 00:02:18,450 --> 00:02:25,050 Ora tutto ciò che dobbiamo fare per accedervi è eseguire questo comando expo install, che a proposito è come npm install, 33 00:02:25,170 --> 00:02:30,750 solo che si assicura che installi una versione del pacchetto che è garantito per funzionare con la 34 00:02:30,750 --> 00:02:38,070 nostra versione specifica di expo che stiamo usando in questa app. Quindi copierò questo comando e poi in questo progetto, 35 00:02:38,090 --> 00:02:45,530 potremo eseguire il selettore di immagini di expo install expo. Premi invio e questo ora installerà questo pacchetto con npm install 36 00:02:45,530 --> 00:02:49,580 dietro le quinte, questo è quello che fa qui, solo in una 37 00:02:49,610 --> 00:02:55,880 versione che si adatta al nostro SDK expo dove stiamo usando in questo progetto e questo ora lo 38 00:02:55,880 --> 00:02:58,190 installerà e il gioco è fatto, non 39 00:02:58,190 --> 00:03:00,410 è necessaria alcuna configurazione aggiuntiva. 40 00:03:00,410 --> 00:03:02,800 Non abbiamo bisogno di toccare alcun file di 41 00:03:02,810 --> 00:03:04,570 configurazione, non abbiamo bisogno di fare 42 00:03:04,640 --> 00:03:07,970 nient'altro, questo ci assicura che possiamo usare questa funzionalità e che 43 00:03:07,970 --> 00:03:09,690 ovviamente è molto semplice. 44 00:03:09,770 --> 00:03:15,280 Con ciò possiamo iniziare ad usarlo e voglio iniziare ad usarlo qui nella nuova schermata del luogo in 45 00:03:15,350 --> 00:03:17,270 cui abbiamo inserito il testo 46 00:03:17,270 --> 00:03:22,480 giusto, lì voglio anche ora aggiungere un pulsante che l'utente può premere per aprire la telecamera. 47 00:03:22,490 --> 00:03:27,680 Ora, ovviamente, per tutte queste funzionalità del dispositivo nativo e anche per le molte funzionalità che ovviamente non 48 00:03:27,680 --> 00:03:32,660 possiamo comprendere in questo corso, hai sempre imparato come puoi usarle qui nei tuoi documenti ufficiali dell'esposizione, 49 00:03:32,660 --> 00:03:38,260 lì hai imparato a quali metodi e proprietà puoi accedere lì, troverai alcuni brevi esempi per molti pacchetti, quindi 50 00:03:38,300 --> 00:03:43,220 è sicuramente qualcosa che dovresti dare un'occhiata. Per la fotocamera, ovviamente, puoi anche 51 00:03:43,220 --> 00:03:46,920 seguire perché lo useremo insieme qui per scattare una foto. 52 00:03:46,970 --> 00:03:54,830 In realtà creerò un nuovo componente, ImageSelector. js, puoi chiamarlo come vuoi in cui 53 00:03:54,830 --> 00:04:05,810 importare React da React e dove importare una vista e un pulsante e anche un testo da React Native e ovviamente anche il 54 00:04:06,290 --> 00:04:11,710 foglio di stile perché voglio dare uno stile al selettore di immagini. 55 00:04:11,870 --> 00:04:16,130 Diamo il nome al selettore di immagini, mi piace, il mio componente di selezione delle immagini. 56 00:04:16,790 --> 00:04:23,570 Quindi, qui, il selettore di immagini è ovviamente un componente normale in cui voglio impostare 57 00:04:23,580 --> 00:04:31,290 alcuni stili con il foglio di stile. creare metodo e dove alla fine esportare il componente di selezione delle immagini. 58 00:04:31,310 --> 00:04:37,510 Cosa succederà qui nel componente di selezione delle immagini? Alla fine, qui restituirò una 59 00:04:37,780 --> 00:04:44,750 vista che dovrebbe quindi contenere un'altra vista in cui posso visualizzare un'anteprima dell'immagine. 60 00:04:44,770 --> 00:04:50,500 Quindi lì, voglio avere il componente di testo in cui dico che non è stata ancora scelta alcuna immagine, qual 61 00:04:50,530 --> 00:04:52,840 è il mio contenuto di fallback se non 62 00:04:52,930 --> 00:04:54,920 è stata ancora scelta un'immagine, altrimenti 63 00:04:54,940 --> 00:04:59,700 visualizzerò un'immagine, quindi dovremo anche importare il componente immagine da Reagisci nativo e sotto quella vista, aggiungerò 64 00:04:59,710 --> 00:05:09,180 un pulsante con un titolo di immagine di ripresa in cui voglio impostare il colore su Colori. primario, quindi per quello, assicurati 65 00:05:09,190 --> 00:05:17,410 di importare quei colori costanti e su una stampa, voglio 66 00:05:17,500 --> 00:05:27,530 aprire la fotocamera e mostrarla all'utente. Quindi aggiungerò anche una costante qui, prenderò il gestore di immagini e questa è una 67 00:05:27,530 --> 00:05:29,480 funzione che dovrebbe aprire la 68 00:05:29,480 --> 00:05:33,140 fotocamera e questa è la funzione che legherò a questo pulsante. 69 00:05:33,170 --> 00:05:42,470 Ora un po 'di stile sarebbe bello. In quella vista esterna, aggiungerò uno stile di selezione delle immagini, 70 00:05:42,800 --> 00:05:45,860 in questa vista interna che mostra 71 00:05:45,860 --> 00:05:55,020 un'anteprima della mia immagine, aggiungerò uno stile di anteprima dell'immagine. Quindi questo testo qui potrebbe anche essere in stile, ma in realtà non ho 72 00:05:55,020 --> 00:06:02,910 bisogno di uno stile speciale lì e, naturalmente, voglio anche produrre un'immagine qui e presto aggiungerò una condizione if / else per visualizzare 73 00:06:02,910 --> 00:06:05,120 solo il testo o l'immagine 74 00:06:05,270 --> 00:06:09,030 e questo dovrebbe anche avere uno stile forse solo di immagine. 75 00:06:09,030 --> 00:06:13,620 Quindi ora abbiamo tre identificatori di stile che dobbiamo aggiungere al 76 00:06:13,890 --> 00:06:17,440 foglio di stile, otteniamo il selettore di immagini 77 00:06:17,610 --> 00:06:22,440 per il componente complessivo, otteniamo l'anteprima dell'immagine e quindi abbiamo l'immagine stessa. 78 00:06:22,440 --> 00:06:28,560 L'immagine stessa è semplice, lì voglio solo impostare una larghezza del 100% e un'altezza del 100% in modo 79 00:06:28,560 --> 00:06:32,670 che occupi tutta la larghezza e l'altezza del contenitore di anteprima circostante. 80 00:06:32,670 --> 00:06:36,750 Ovviamente quel contenitore può ovviamente essere configurato comunque tu voglia configurarlo, gli 81 00:06:36,870 --> 00:06:41,550 darò una larghezza del 100% e un'altezza di 200 pixel, ma ovviamente puoi 82 00:06:41,550 --> 00:06:47,880 modificarlo o calcolarlo dinamicamente con l'API delle dimensioni. Aggiungi un margine in fondo a 10 83 00:06:47,880 --> 00:06:55,400 e assicurati che il testo del mio segnaposto sia effettivamente centrato aggiungendo il centro contenuti giustificato e 84 00:06:55,400 --> 00:06:59,470 allinea il centro degli elementi qui e oltre a 85 00:06:59,730 --> 00:07:08,460 ciò, aggiungerò anche un bordo qui con il colore del bordo grigio chiaro e la larghezza del bordo di 86 00:07:08,460 --> 00:07:09,500 uno. 87 00:07:09,720 --> 00:07:15,270 Ora per il componente di selezione delle immagini in generale, lo imposterò per allineare il centro degli elementi 88 00:07:15,270 --> 00:07:19,020 per assicurarmi che tutti gli elementi siano centrati in orizzontale ma 89 00:07:19,080 --> 00:07:22,910 ora siamo tutti qui per aprire davvero la fotocamera del dispositivo, giusto? 90 00:07:23,010 --> 00:07:28,680 Quindi prima di fare qualsiasi altra cosa qui riguardo l'anteprima e così 91 00:07:28,700 --> 00:07:40,720 via, assicuriamoci che qui nel gestore delle immagini take, apriamo effettivamente la fotocamera e, per questo, importiamo tutto come selettore di immagini dal selettore di immagini 92 00:07:41,500 --> 00:07:48,460 expo, quindi da questo pacchetto appena installato. Ora da quando ho usato il selettore di immagini 93 00:07:48,490 --> 00:07:54,360 qui e anche per il componente, avremo uno scontro di nomi, quindi chiamerò questo selettore 94 00:07:54,390 --> 00:07:59,860 di img qui solo per evitare questo scontro di nomi che altrimenti causerebbe problemi, 95 00:07:59,920 --> 00:08:02,910 anche cambiarlo qui nell'esportazione di corso. 96 00:08:02,920 --> 00:08:06,610 Quindi ora con il selettore di immagini importato qui, possiamo usarlo qui, 97 00:08:06,610 --> 00:08:07,700 il selettore di 98 00:08:07,840 --> 00:08:10,930 immagini e lì possiamo chiamare il lancio della videocamera asincrono. 99 00:08:10,960 --> 00:08:13,810 Puoi anche aprire la galleria, 100 00:08:13,810 --> 00:08:18,000 se vuoi, ma qui chiamerò launch camera async. 101 00:08:18,140 --> 00:08:25,070 Ora questo aprirà la fotocamera del dispositivo e la parte asincrona qui implica che si tratta di 102 00:08:25,070 --> 00:08:26,120 un'operazione asincrona. 103 00:08:26,120 --> 00:08:31,550 In effetti questo restituisce una promessa, che ha senso perché apre la fotocamera e non sappiamo 104 00:08:31,550 --> 00:08:33,740 quando l'utente avrà finito di scattare 105 00:08:33,740 --> 00:08:39,920 l'immagine, quindi registrerà semplicemente una funzione che dovrebbe eseguire una volta che l'utente ha finito e risolto la 106 00:08:39,920 --> 00:08:44,930 promessa di eseguire quella funzione una volta che ciò accade, una volta che l'utente ha 107 00:08:44,930 --> 00:08:51,400 terminato o anche ovviamente una volta che l'utente annulla. Siamo in grado di gestire tutto ciò e il risultato e così 108 00:08:51,400 --> 00:08:57,450 via in seguito, per ora vediamo se funziona e per questo, includiamo il componente di selezione delle immagini nella nuova schermata del luogo. 109 00:08:57,490 --> 00:09:03,670 Quindi lì, possiamo importare il selettore di immagini e qui ovviamente possiamo usare quel nome 110 00:09:03,670 --> 00:09:10,960 perché non stiamo usando il pacchetto di selezione delle immagini qui, importarlo dai componenti, dal componente di selezione delle immagini 111 00:09:10,990 --> 00:09:17,780 e aggiungere questo selettore di immagini qui sotto il nostro input di testo come componente autochiudente come questo. 112 00:09:17,800 --> 00:09:22,300 Ora se lo salviamo, diamo un'occhiata. Qui, quel testo e 113 00:09:22,320 --> 00:09:27,720 così via, non è posizionato correttamente, non dobbiamo preoccuparci di questo in questo 114 00:09:27,720 --> 00:09:35,930 momento, invece premiamo prendi immagine e quello che vedrai è che non succede nulla ma poi ricevo un avviso: 115 00:09:35,960 --> 00:09:45,360 fotocamera mancante o permesso di rullino fotografico. Su Android, se lo provo, mi viene chiesto se desidero concedere le autorizzazioni. Devo premere Consenti qui e con 116 00:09:45,360 --> 00:09:51,240 ciò, la fotocamera si apre. Quindi va bene, generalmente funziona, posso usarlo, 117 00:09:51,240 --> 00:09:52,450 posso premere 118 00:09:52,470 --> 00:09:56,790 questo pulsante quindi e quindi confermare l'immagine che ho scattato 119 00:09:57,090 --> 00:10:04,440 ma su iOS non funziona e perché è così? Bene su iOS, qui abbiamo un errore di autorizzazione giusto 120 00:10:04,480 --> 00:10:05,260 e 121 00:10:05,320 --> 00:10:10,810 ciò accade semplicemente perché le autorizzazioni sono importanti ma funzionano diversamente su iOS e Android. 122 00:10:11,500 --> 00:10:12,100 Su 123 00:10:12,100 --> 00:10:18,600 Android imposterai anche le autorizzazioni in anticipo e poiché stiamo utilizzando questa applicazione expo in cui expo fornisce questo 124 00:10:18,600 --> 00:10:26,440 wrapper, expo esegue effettivamente tutte queste autorizzazioni configurate e richieste per noi. Per iOS, il sistema di autorizzazione funziona in 125 00:10:26,440 --> 00:10:28,310 modo leggermente diverso. 126 00:10:28,360 --> 00:10:34,390 Non lo configuri in modo tale da avere un file di configurazione in cui definisci tutte le autorizzazioni in anticipo 127 00:10:34,390 --> 00:10:34,900 e 128 00:10:34,900 --> 00:10:38,540 il gioco è fatto, invece devi chiedere l'autorizzazione in fase di esecuzione. 129 00:10:38,590 --> 00:10:43,040 Nota a margine in alcune versioni di Android, anche ora dovresti farlo. 130 00:10:43,210 --> 00:10:49,600 C'è ancora un'esposizione come vedi che fa per te, quindi per Android, funziona in quel modo, su 131 00:10:49,600 --> 00:10:56,050 iOS no, devi chiedere all'utente un'autorizzazione per accedere alla videocamera ed è semplicemente qualcosa che dobbiamo fare 132 00:10:56,050 --> 00:10:59,890 qui e possiamo farlo con l'aiuto di un altro pacchetto 133 00:10:59,890 --> 00:11:02,680 expo e questo è il pacchetto permessi. 134 00:11:02,710 --> 00:11:08,890 È inoltre necessario installarlo con questo comando qui nel progetto in modo da poter chiedere 135 00:11:08,890 --> 00:11:10,230 le autorizzazioni all'utente. 136 00:11:10,420 --> 00:11:12,640 Quindi facciamolo qui nel progetto, 137 00:11:12,640 --> 00:11:19,570 eseguiamo le autorizzazioni expo install expo che è ancora questo wrapper intorno a npm install per installare le autorizzazioni per 138 00:11:19,570 --> 00:11:26,050 questo progetto o per installare questo pacchetto per questo progetto e quindi nel selettore immagini prima di provare 139 00:11:26,050 --> 00:11:33,580 ad avviare il e aprendo la fotocamera, dovremo chiedere le autorizzazioni. Per questo aggiungerò effettivamente una nuova 140 00:11:33,580 --> 00:11:41,260 costante qui, otterrò o verificherò le autorizzazioni e questa è una funzione che contiene 141 00:11:41,430 --> 00:11:47,310 una funzione che utilizzerà questo pacchetto di autorizzazioni appena aggiunto. 142 00:11:47,310 --> 00:11:52,050 Quindi qui importa tutto come permessi dalle autorizzazioni expo, quindi lo stesso tipo 143 00:11:52,050 --> 00:11:55,280 di importazione che abbiamo per il selettore di 144 00:11:55,590 --> 00:12:00,420 immagini e poi lì, possiamo usare i permessi e chiedere in modo asincrono. 145 00:12:00,420 --> 00:12:06,270 Ancora una volta, si tratta di un'attività asincrona che restituisce una promessa perché ciò aprirà un prompt e prima 146 00:12:06,270 --> 00:12:08,810 che l'utente abbia scelto una risposta, non 147 00:12:08,820 --> 00:12:14,760 accadrà nulla, quindi abbiamo una promessa che si risolve o viene rifiutata una volta che l'utente ha confermato o rifiutato. 148 00:12:16,560 --> 00:12:20,090 Quindi qui dobbiamo quindi essere più specifici su quali autorizzazioni 149 00:12:20,100 --> 00:12:27,270 abbiamo bisogno, quindi passiamo qualcosa da chiedere asincrono e questa è una costante che otteniamo dall'oggetto autorizzazioni che stiamo importando qui. 150 00:12:27,660 --> 00:12:33,630 Quindi, con la notazione a punti qui, possiamo accedere a diversi tipi di autorizzazioni e qui tutti questi 151 00:12:33,690 --> 00:12:36,660 nomi in maiuscolo sono i diversi permessi che 152 00:12:36,660 --> 00:12:41,660 puoi chiedere e qui abbiamo bisogno dell'autorizzazione della fotocamera perché vogliamo accedere alla fotocamera. 153 00:12:41,710 --> 00:12:46,340 Se volessi accedere alla galleria, questa sarebbe l'autorizzazione per il rullino fotografico. 154 00:12:47,850 --> 00:12:49,850 Ora vado per la fotocamera qui 155 00:12:50,700 --> 00:12:54,390 e come ho detto, questo restituisce una promessa, voglio usare 156 00:12:54,420 --> 00:13:00,410 async wait qui quindi quindi posso aggiungere async qui davanti alla funzione e quindi attendere questo e 157 00:13:00,440 --> 00:13:01,500 ottenere il 158 00:13:01,500 --> 00:13:06,470 risultato e archiviarlo in una costante , l'alternativa a quella sarebbe usare allora e 159 00:13:06,780 --> 00:13:14,010 prendere questo e lì ora possiamo verificare se il risultato. lo stato non è uguale a concesso, il che significa che l'utente 160 00:13:14,010 --> 00:13:16,210 ha rifiutato, l'utente non ha concesso 161 00:13:16,290 --> 00:13:18,770 le autorizzazioni, in tal caso non possiamo continuare. 162 00:13:18,780 --> 00:13:25,590 Quindi qui in realtà lancerò un avviso, quindi importare un 163 00:13:25,590 --> 00:13:40,420 avviso da React Native e lanciare un avviso in cui dico avviso. avviso, autorizzazioni insufficienti, è necessario concedere le autorizzazioni per l'app della fotocamera per utilizzare questa app o qualsiasi output 164 00:13:40,480 --> 00:13:42,890 che si desidera mostrare e 165 00:13:43,000 --> 00:13:49,690 quindi aggiungerò un pulsante qui dove dico OK. Ora l'utente dovrà modificare le autorizzazioni nelle impostazioni di 166 00:13:49,690 --> 00:13:55,000 sistema dopo averle rifiutate comunque, quindi non possiamo chiedere nuovamente le autorizzazioni qui una volta 167 00:13:55,000 --> 00:13:56,950 che sono state rifiutate. 168 00:13:56,950 --> 00:14:02,950 Quindi qui, voglio restituire false perché è la funzione di verifica delle autorizzazioni e voglio restituire 169 00:14:02,950 --> 00:14:06,790 false se l'utente non ci ha concesso autorizzazioni, restituisco true 170 00:14:06,790 --> 00:14:10,080 altrimenti perché ora sappiamo di avere autorizzazioni 171 00:14:10,090 --> 00:14:14,920 A proposito, se chiamiamo questo funzioni più volte e l'utente ha già 172 00:14:14,920 --> 00:14:20,050 concesso autorizzazioni in passato, l'utente non verrà nuovamente presentato con questo prompt, lo 173 00:14:20,050 --> 00:14:27,880 stesso se l'utente ha rifiutato, in entrambi i casi il risultato viene archiviato automaticamente da iOS e questa funzione restituisce 174 00:14:27,880 --> 00:14:33,400 vero o falso a seconda che l'utente abbia negato o concesso l'accesso in passato. 175 00:14:33,400 --> 00:14:37,350 Quindi verificare le autorizzazioni ora è semplicemente una funzione che dobbiamo chiamare nel gestore 176 00:14:37,350 --> 00:14:40,590 delle immagini take prima di provare a utilizzare la fotocamera. 177 00:14:40,780 --> 00:14:46,600 Quindi qui, voglio anche usare async wait perché la verifica delle autorizzazioni ovviamente è una funzione 178 00:14:46,660 --> 00:14:47,600 che restituisce 179 00:14:47,770 --> 00:14:55,080 una promessa, quindi aspetterò questo e memorizzerò il risultato che memorizzerò in una costante denominata ha l'autorizzazione perché questa è 180 00:14:56,100 --> 00:15:01,020 vera o falsa a seconda che l'utente abbia concesso o meno le autorizzazioni. 181 00:15:01,020 --> 00:15:05,580 Ora se questo è falso, quindi se non è vero, tornerò qui, non 182 00:15:05,580 --> 00:15:11,100 continuerò, non aprirò la fotocamera perché non mi sarà permesso farlo comunque, quindi non possiamo continua, questa 183 00:15:11,100 --> 00:15:11,580 è 184 00:15:11,580 --> 00:15:12,360 la cosa. 185 00:15:13,500 --> 00:15:17,910 Altrimenti possiamo continuare e ora dovremmo essere in grado di lanciare anche una fotocamera su iOS. 186 00:15:17,940 --> 00:15:18,810 Quindi 187 00:15:18,810 --> 00:15:19,720 proviamo, salviamolo e 188 00:15:19,830 --> 00:15:25,750 ora con quello cambiato, disinstallerò effettivamente expo qui per assicurarmi che per quanto riguarda le 189 00:15:25,750 --> 00:15:29,530 autorizzazioni che ho concesso lì, sia tornato allo stato iniziale. 190 00:15:29,640 --> 00:15:33,860 Probabilmente non è necessario farlo se non hai mai concesso autorizzazioni nella 191 00:15:33,900 --> 00:15:39,810 tua app expo ma se in precedenza hai giocato con autorizzazioni e pacchetti nativi, dovresti disinstallare e 192 00:15:39,810 --> 00:15:44,870 quindi reinstallare l'app expo eseguendo di nuovo l'app su iOS premendo i nella console laggiù 193 00:15:44,890 --> 00:15:47,910 per assicurarsi che tutte queste autorizzazioni siano ripristinate. 194 00:15:47,910 --> 00:15:53,220 Quindi ora se andiamo alla nuova schermata di riproduzione e facciamo clic su scatta immagine, mi 195 00:15:53,490 --> 00:16:00,120 viene chiesto se voglio concedere l'accesso alla videocamera e qui posso fare clic su OK e ora otteniamo ancora quell'errore. 196 00:16:01,490 --> 00:16:07,420 Ora l'unica ragione per questo è che anche se stiamo provando ad accedere alla videocamera qui, questo in realtà 197 00:16:07,420 --> 00:16:12,450 ed è solo qualcosa che conosco per questo pacchetto richiede autorizzazioni per il rullino fotografico completo. 198 00:16:12,450 --> 00:16:16,020 Quindi cambiamo questo per chiedere le autorizzazioni al rullino fotografico qui 199 00:16:22,830 --> 00:16:25,880 e con quello, torna indietro e fai clic su scatta 200 00:16:25,880 --> 00:16:32,550 immagine, ora sto chiedendo se voglio consentire l'accesso alle foto e ora se faccio clic su Sì, la fotocamera non è 201 00:16:32,560 --> 00:16:37,710 disponibile su il simulatore che ora è un errore diverso ed è abbastanza chiaro riguardo al problema, 202 00:16:37,780 --> 00:16:43,510 il simulatore iOS semplicemente non ha una videocamera. Quindi continuerò su Android da 203 00:16:43,510 --> 00:16:47,380 ora in poi, ma ovviamente puoi provarlo su un 204 00:16:47,380 --> 00:16:54,250 vero iPhone per vedere che lì funziona anche. Se esegui la scansione del tuo codice a barre expo con 205 00:16:54,250 --> 00:16:56,000 l'app expo ed esegui l'app 206 00:16:56,050 --> 00:17:02,020 lì come l'hai vista all'inizio del corso, puoi scattare immagini con un telefono reale e mostrerò anche l'app finita alla 207 00:17:02,200 --> 00:17:05,750 fine di questo modulo su dispositivi iOS e Android, su dispositivi reali. 208 00:17:05,890 --> 00:17:10,600 Quindi, per il momento, mi concentrerò su Android e lì, ovviamente, siamo già stati in grado di aprirlo. 209 00:17:10,690 --> 00:17:18,530 Mi viene nuovamente chiesto qui, ma ora posso aprirlo e scattare un'immagine. Ovviamente è bello, ma prendere l'immagine in questo modo non è tutto ciò che 210 00:17:18,530 --> 00:17:20,490 voglio fare, voglio anche essere in grado 211 00:17:20,570 --> 00:17:24,590 di configurare il modo in cui lo prendo e voglio essere in grado di usarlo.