1 00:00:02,100 --> 00:00:07,110 Sekarang aplikasi React Native ini dibangun dengan bantuan expo seperti yang Anda tahu. Sekarang seperti yang saya sebutkan di 2 00:00:07,110 --> 00:00:12,690 awal kursus, ini masih merupakan aplikasi asli React Native, oleh karena itu pameran 3 00:00:12,690 --> 00:00:19,170 hanya sebagai pembungkus tambahan yang menyediakan banyak fitur kenyamanan di luar kotak yang membuat membangun 4 00:00:19,170 --> 00:00:20,820 aplikasi ini lebih 5 00:00:20,820 --> 00:00:27,770 mudah dan itu seperti sebuah shell, sebuah aplikasi tempat aplikasi kami berjalan yang karenanya menjadikan banyak fungsi 6 00:00:27,780 --> 00:00:31,860 perangkat asli lebih mudah dan terutama lebih mudah diatur. 7 00:00:31,860 --> 00:00:37,380 Sekarang seperti yang saya sebutkan di awal modul ini, dalam modul terpisah saya akan menunjukkan kepada Anda bagaimana 8 00:00:37,380 --> 00:00:40,590 Anda dapat menambahkan fitur perangkat asli ke aplikasi non-expo tetapi 9 00:00:40,890 --> 00:00:46,170 sebenarnya, jika Anda tidak memiliki alasan untuk tidak menggunakan expo, saya akan sangat menyarankan Anda menggunakannya karena 10 00:00:46,170 --> 00:00:53,400 pameran jika Anda memeriksa dokumen mereka, memiliki banyak fitur bawaan dan banyak modul bawaan bawaan yang dapat Anda gunakan, sehingga fitur perangkat asli 11 00:00:53,400 --> 00:00:54,570 dapat Anda tambahkan 12 00:00:54,570 --> 00:00:56,460 dengan mudah dan Anda melihat 13 00:00:57,090 --> 00:01:01,620 daftar lengkap di sini dengan pergi ke dokumen dan di sana ke referensi API. 14 00:01:01,620 --> 00:01:07,650 Di sini, Anda melihat banyak hal yang dapat Anda tambahkan ke aplikasi Anda dan ini 15 00:01:08,070 --> 00:01:11,220 sebagian besar fungsi perangkat asli yang semuanya disediakan 16 00:01:11,340 --> 00:01:16,770 oleh expo di luar kotak, jadi Anda masih perlu menginstal sesuatu tetapi Anda harus 17 00:01:16,770 --> 00:01:23,700 tidak melakukan manual konfigurasi dan seperti yang akan Anda lihat dalam membangun aplikasi tanpa modul expo, ada beberapa 18 00:01:23,790 --> 00:01:30,270 konfigurasi yang perlu Anda lakukan jika Anda menambahkan modul asli, paket fitur perangkat asli ke aplikasi non-expo, 19 00:01:30,270 --> 00:01:32,560 jadi ini benar-benar manis sini. 20 00:01:32,650 --> 00:01:38,360 Sekarang saya ingin menggunakan kamera dan memang ada paket kamera yang bisa Anda tambahkan. 21 00:01:38,610 --> 00:01:42,510 Kami benar-benar dapat menggunakannya untuk mengakses kamera perangkat, ini 22 00:01:42,510 --> 00:01:43,620 sangat cocok 23 00:01:43,620 --> 00:01:49,620 jika Anda perlu membuat aplikasi yang benar-benar harus melakukan banyak hal dengan kamera, jika Anda 24 00:01:49,620 --> 00:01:55,440 membangun seperti Instagram, seperti aplikasi di mana Anda benar-benar ingin mengontrol seluruh layar kamera 25 00:01:55,440 --> 00:02:00,760 dan seluruh aliran kamera, sebenarnya bukan itu yang ingin saya lakukan di sini. 26 00:02:00,780 --> 00:02:02,960 Saya ingin menggunakan kamera perangkat biasa, saya 27 00:02:02,970 --> 00:02:04,660 tidak perlu sesuatu yang 28 00:02:04,740 --> 00:02:08,150 istimewa di sana, saya hanya ingin mendapatkan gambar yang dapat diambil 29 00:02:08,230 --> 00:02:13,620 pengguna dan untuk itu kami benar-benar mendapatkan pemilih gambar. Ini juga memungkinkan kita untuk menggunakan kamera perangkat tetapi 30 00:02:13,620 --> 00:02:16,200 itu tidak memungkinkan kita untuk menyesuaikan kamera sebanyak itu, 31 00:02:16,200 --> 00:02:18,450 tetapi itulah yang saya butuhkan di sini. 32 00:02:18,450 --> 00:02:25,050 Sekarang yang perlu kita lakukan untuk mendapatkan akses adalah menjalankan perintah install expo ini, yang omong-omong seperti instal 33 00:02:25,170 --> 00:02:30,750 npm, hanya saja memastikan bahwa ia menginstal versi paket yang dijamin dapat bekerja dengan versi 34 00:02:30,750 --> 00:02:38,070 spesifik kami. expo yang kami gunakan di aplikasi ini. Jadi saya akan menyalin perintah ini dan kemudian dalam 35 00:02:38,090 --> 00:02:45,530 proyek ini, kita dapat menjalankan expo install picko image picker. Tekan enter dan ini sekarang akan menginstal paket ini dengan 36 00:02:45,530 --> 00:02:49,580 npm menginstal di belakang layar, inilah yang dilakukannya di sini, hanya 37 00:02:49,610 --> 00:02:55,880 dalam versi yang sesuai dengan SDK expo kami di mana kami menggunakan dalam proyek ini dan ini 38 00:02:55,880 --> 00:02:58,190 sekarang akan menginstalnya dan hanya itu, 39 00:02:58,190 --> 00:03:00,410 tidak diperlukan konfigurasi tambahan. 40 00:03:00,410 --> 00:03:02,800 Kami tidak perlu menyentuh file konfigurasi, kami 41 00:03:02,810 --> 00:03:04,570 tidak perlu melakukan hal lain, 42 00:03:04,640 --> 00:03:07,970 ini memastikan bahwa kami dapat menggunakan fungsi ini dan itu 43 00:03:07,970 --> 00:03:09,690 tentu saja sangat mudah. 44 00:03:09,770 --> 00:03:15,280 Dengan itu kita dapat mulai menggunakannya dan saya ingin mulai menggunakannya di sini di layar tempat baru 45 00:03:15,350 --> 00:03:17,270 di mana kita memiliki input 46 00:03:17,270 --> 00:03:22,480 teks, di sana saya juga ingin sekarang menambahkan tombol yang dapat ditekan pengguna untuk membuka kamera. 47 00:03:22,490 --> 00:03:27,680 Sekarang tentu saja untuk semua fitur perangkat asli ini dan juga banyak fitur yang tentu saja tidak dapat kita 48 00:03:27,680 --> 00:03:32,660 bahas dalam kursus ini, Anda selalu belajar bagaimana Anda dapat menggunakannya di sini dalam dokumen pameran resmi Anda, 49 00:03:32,660 --> 00:03:38,260 di sana Anda mempelajari metode dan properti yang dapat Anda akses di sana, Anda menemukan beberapa contoh singkat untuk banyak paket, 50 00:03:38,300 --> 00:03:43,220 jadi itu pasti sesuatu yang harus Anda periksa. Untuk kamera, tentu saja Anda juga bisa 51 00:03:43,220 --> 00:03:46,920 mengikuti karena kami akan menggunakannya bersama di sini untuk mengambil gambar. 52 00:03:46,970 --> 00:03:54,830 Saya sebenarnya akan membuat komponen baru, ImageSelector. js, Anda dapat menamainya apa pun yang 53 00:03:54,830 --> 00:04:05,810 Anda inginkan di mana saya mengimpor Bereaksi dari Bereaksi dan di mana saya mengimpor tampilan dan tombol dan juga teks dari Bereaksi Asli 54 00:04:06,290 --> 00:04:11,710 dan juga stylesheet tentu saja karena saya ingin gaya pemilih gambar saya. 55 00:04:11,870 --> 00:04:16,130 Sebenarnya mari kita beri nama pemilih gambar, saya suka itu, komponen pemilih gambar saya. 56 00:04:16,790 --> 00:04:23,570 Jadi di sini, pemetik gambar kemudian menjadi komponen reguler, di mana saya 57 00:04:23,580 --> 00:04:31,290 ingin mengatur beberapa gaya dengan Stylesheet. buat metode dan di mana saya pada akhirnya mengekspor komponen pemilih gambar. 58 00:04:31,310 --> 00:04:37,510 Sekarang apa yang akan terjadi di sini di komponen pemilih gambar? Pada akhirnya, di sini saya akan 59 00:04:37,780 --> 00:04:44,750 mengembalikan tampilan yang kemudian memiliki tampilan lain di mana saya dapat menampilkan pratinjau gambar. 60 00:04:44,770 --> 00:04:50,500 Jadi di sana, saya ingin memiliki komponen teks di mana saya mengatakan belum mengambil gambar yang merupakan konten mundur 61 00:04:50,530 --> 00:04:52,840 saya jika belum ada gambar yang dipilih, 62 00:04:52,930 --> 00:04:54,920 jika tidak saya akan menampilkan gambar, 63 00:04:54,940 --> 00:04:59,700 jadi kita juga perlu mengimpor komponen gambar dari Bereaksi Asli dan di bawah tampilan itu, saya 64 00:04:59,710 --> 00:05:09,180 akan menambahkan tombol dengan judul take image di mana saya ingin mengatur warna ke Warna. utama, jadi untuk itu, pastikan 65 00:05:09,190 --> 00:05:17,410 Anda mengimpor warna yang konstan dan saat ditekan, saya ingin 66 00:05:17,500 --> 00:05:27,530 membuka kamera dan menampilkannya kepada pengguna. Jadi saya juga akan menambahkan konstanta di sini, ambil penangan gambar dan itu adalah 67 00:05:27,530 --> 00:05:29,480 fungsi yang harus membuka kamera 68 00:05:29,480 --> 00:05:33,140 dan itulah fungsi yang akan saya ikat ke tombol ini. 69 00:05:33,170 --> 00:05:42,470 Sekarang beberapa gaya akan menyenangkan. Pada tampilan luar itu, saya akan menambahkan gaya pemilih gambar, 70 00:05:42,800 --> 00:05:45,860 pada tampilan dalam ini yang menampilkan 71 00:05:45,860 --> 00:05:55,020 pratinjau gambar saya, saya akan menambahkan gaya pratinjau gambar. Kemudian teks ini di sini juga bisa ditata tetapi saya sebenarnya tidak memerlukan 72 00:05:55,020 --> 00:06:02,910 gaya khusus di sana dan tentu saja, saya juga ingin menampilkan gambar di sini dan saya akan segera menambahkan kondisi if / else 73 00:06:02,910 --> 00:06:05,120 untuk hanya menampilkan teks atau 74 00:06:05,270 --> 00:06:09,030 gambar dan ini juga harus mendapatkan beberapa gaya mungkin hanya gambar. 75 00:06:09,030 --> 00:06:13,620 Jadi sekarang kita memiliki tiga pengidentifikasi gaya yang perlu kita tambahkan 76 00:06:13,890 --> 00:06:17,440 ke stylesheet, kita mendapatkan pemilih gambar untuk 77 00:06:17,610 --> 00:06:22,440 komponen keseluruhan, mendapatkan pratinjau gambar dan kemudian kita mendapatkan gambar itu sendiri. 78 00:06:22,440 --> 00:06:28,560 Gambar itu sendiri sederhana, di sana saya hanya ingin mengatur lebar 100% dan tinggi 100% 79 00:06:28,560 --> 00:06:32,670 sehingga dibutuhkan lebar penuh dan tinggi wadah pratinjau sekitarnya. 80 00:06:32,670 --> 00:06:36,750 Wadah itu tentu saja dapat dikonfigurasi namun Anda ingin mengkonfigurasinya, saya 81 00:06:36,870 --> 00:06:41,550 akan memberikannya lebar 100% dan tinggi 200 piksel tetapi tentu saja Anda dapat 82 00:06:41,550 --> 00:06:47,880 mengubahnya atau menghitungnya secara dinamis dengan dimensi API. Tambahkan margin ke bagian bawah 10 83 00:06:47,880 --> 00:06:55,400 dan pastikan bahwa teks placeholder saya akan benar-benar terpusat dengan menambahkan justify content center 84 00:06:55,400 --> 00:06:59,470 dan menyelaraskan item center di sini dan 85 00:06:59,730 --> 00:07:08,460 di samping itu, saya juga akan menambahkan perbatasan di sini dengan warna abu-abu terang dan lebar perbatasan 86 00:07:08,460 --> 00:07:09,500 satu. 87 00:07:09,720 --> 00:07:15,270 Sekarang untuk komponen pemilih gambar secara umum, saya hanya akan mengatur ini untuk menyelaraskan pusat item 88 00:07:15,270 --> 00:07:19,020 untuk memastikan bahwa semua item dipusatkan secara horizontal tetapi 89 00:07:19,080 --> 00:07:22,910 sekarang kita semua di sini untuk benar-benar membuka kamera perangkat, kan? 90 00:07:23,010 --> 00:07:28,680 Jadi sebelum kita melakukan hal lain di sini mengenai pratinjau dan seterusnya, mari 91 00:07:28,700 --> 00:07:40,720 kita pastikan bahwa di sini di pengambil gambar, kita benar-benar membuka kamera dan untuk itu, mari kita mengimpor semuanya sebagai pemetik gambar dari pemilih gambar pameran, jadi dari 92 00:07:41,500 --> 00:07:48,460 ini paket yang baru saja Anda instal. Sekarang karena saya menggunakan pemetik gambar di sini dan 93 00:07:48,490 --> 00:07:54,360 juga untuk komponen, kami akan memiliki nama bentrokan, jadi saya akan memberi nama pemetik img ini 94 00:07:54,390 --> 00:07:59,860 di sini hanya untuk menghindari bentrokan nama ini yang jika tidak akan menyebabkan masalah, juga 95 00:07:59,920 --> 00:08:02,910 mengubahnya di sini dalam ekspor tentu saja 96 00:08:02,920 --> 00:08:06,610 Jadi sekarang dengan pemilih gambar diimpor di sini, kita dapat menggunakannya di 97 00:08:06,610 --> 00:08:07,700 sini, pemilih gambar 98 00:08:07,840 --> 00:08:10,930 dan di sana kita dapat memanggil launch camera async. 99 00:08:10,960 --> 00:08:13,810 Anda juga dapat membuka galeri jika 100 00:08:13,810 --> 00:08:18,000 Anda ingin tetapi di sini, saya akan memanggil launch camera async. 101 00:08:18,140 --> 00:08:25,070 Sekarang ini akan membuka kamera perangkat dan bagian async di sini menyiratkan bahwa ini adalah 102 00:08:25,070 --> 00:08:26,120 operasi async. 103 00:08:26,120 --> 00:08:31,550 Memang ini mengembalikan janji, yang masuk akal karena membuka kamera dan kami tidak 104 00:08:31,550 --> 00:08:33,740 tahu kapan pengguna akan 105 00:08:33,740 --> 00:08:39,920 selesai mengambil gambar, jadi itu hanya akan mendaftarkan fungsi yang harus dijalankan setelah pengguna selesai 106 00:08:39,920 --> 00:08:44,930 dan menyelesaikan janji untuk menjalankan fungsi itu setelah itu terjadi, setelah pengguna 107 00:08:44,930 --> 00:08:51,400 selesai atau tentu saja sekali pengguna membatalkan. Kita dapat menangani semua itu dan hasilnya dan seterusnya, untuk 108 00:08:51,400 --> 00:08:57,450 sekarang mari kita lihat apakah itu berhasil dan untuk itu, mari kita sertakan komponen pemilih gambar di layar tempat baru. 109 00:08:57,490 --> 00:09:03,670 Jadi di sana, kita dapat mengimpor pemilih gambar dan di sini tentu saja kita dapat 110 00:09:03,670 --> 00:09:10,960 menggunakan nama itu karena kita tidak menggunakan paket pemilih gambar di sini, mengimpornya dari komponen, dari komponen pemilih gambar 111 00:09:10,990 --> 00:09:17,780 dan menambahkan pemilih gambar ini di sini di bawah input teks kita sebagai komponen penutup diri seperti ini. 112 00:09:17,800 --> 00:09:22,300 Sekarang jika kita menyimpan itu, mari kita lihat. Di sini, teks itu dan 113 00:09:22,320 --> 00:09:27,720 sebagainya, yang tidak diposisikan dengan benar, kita tidak perlu khawatir tentang itu sekarang, mari 114 00:09:27,720 --> 00:09:35,930 kita tekan mengambil gambar dan apa yang akan Anda lihat adalah bahwa tidak ada yang terjadi tetapi kemudian saya mendapatkan peringatan 115 00:09:35,960 --> 00:09:45,360 - kamera hilang atau izin roll kamera. Di Android jika saya mencobanya, di sana saya ditanya apakah saya ingin memberikan izin. Saya perlu menekan izinkan di sini dan 116 00:09:45,360 --> 00:09:51,240 dengan itu, kamera tidak terbuka. Jadi itu bagus, umumnya berfungsi, saya bisa 117 00:09:51,240 --> 00:09:52,450 menggunakannya, saya 118 00:09:52,470 --> 00:09:56,790 dapat menekan tombol ini dan kemudian mengkonfirmasi gambar yang saya 119 00:09:57,090 --> 00:10:04,440 ambil tetapi di iOS tidak berfungsi dan mengapa demikian? Baik di iOS, kami mendapat kesalahan izin di sini dan 120 00:10:04,480 --> 00:10:05,260 itu 121 00:10:05,320 --> 00:10:10,810 hanya terjadi karena izin penting tetapi mereka bekerja secara berbeda di iOS dan Android. 122 00:10:11,500 --> 00:10:12,100 Di 123 00:10:12,100 --> 00:10:18,600 Android Anda juga akan mengatur izin terlebih dahulu dan karena kami menggunakan aplikasi pameran ini di mana pameran menyediakan 124 00:10:18,600 --> 00:10:26,440 bungkus ini, pameran sebenarnya melakukan semua izin ini mengatur dan meminta kami. Untuk iOS, sistem izin bekerja 125 00:10:26,440 --> 00:10:28,310 sedikit berbeda. 126 00:10:28,360 --> 00:10:34,390 Anda tidak benar-benar mengaturnya sehingga Anda memiliki file konfigurasi tempat Anda mendefinisikan semua izin sebelumnya 127 00:10:34,390 --> 00:10:34,900 dan 128 00:10:34,900 --> 00:10:38,540 hanya itu, alih-alih Anda harus meminta izin saat runtime. 129 00:10:38,590 --> 00:10:43,040 Dengan catatan di beberapa versi Android, kini Anda juga harus melakukannya. 130 00:10:43,210 --> 00:10:49,600 Masih ada pameran seperti yang Anda lihat melakukannya untuk Anda, jadi untuk Android, ini berfungsi seperti itu, di 131 00:10:49,600 --> 00:10:56,050 iOS tidak, Anda perlu meminta izin kepada pengguna untuk mengakses kamera dan itu hanya sesuatu yang perlu kita 132 00:10:56,050 --> 00:10:59,890 lakukan di sini dan kita dapat melakukannya dengan bantuan paket 133 00:10:59,890 --> 00:11:02,680 expo lain dan itu adalah paket izin. 134 00:11:02,710 --> 00:11:08,890 Anda juga perlu menginstalnya dengan perintah ini di sini ke dalam proyek Anda sehingga Anda dapat meminta 135 00:11:08,890 --> 00:11:10,230 izin kepada pengguna. 136 00:11:10,420 --> 00:11:12,640 Jadi mari kita lakukan ini 137 00:11:12,640 --> 00:11:19,570 di sini di proyek, mari kita jalankan expo instal izin expo yang lagi-lagi ini hanya pembungkus sekitar npm instal untuk 138 00:11:19,570 --> 00:11:26,050 menginstal izin untuk proyek ini atau untuk menginstal paket ini untuk proyek ini dan kemudian di pemilih gambar sebelum 139 00:11:26,050 --> 00:11:33,580 kita mencoba meluncurkan kamera dan membuka kamera, kita harus meminta izin. Untuk itu saya akan benar-benar menambahkan 140 00:11:33,580 --> 00:11:41,260 konstanta baru di sini, dapatkan atau verifikasi izin dan ini adalah fungsi, yang menyimpan 141 00:11:41,430 --> 00:11:47,310 fungsi yang akan menggunakan paket izin yang baru ditambahkan ini. 142 00:11:47,310 --> 00:11:52,050 Jadi di sini saya mengimpor semuanya sebagai izin dari izin pameran, jadi jenis impor 143 00:11:52,050 --> 00:11:55,280 yang sama seperti yang kita miliki untuk pemetik 144 00:11:55,590 --> 00:12:00,420 gambar dan kemudian di sana, kita dapat menggunakan izin dan bertanya secara tidak sinkron. 145 00:12:00,420 --> 00:12:06,270 Sekali lagi, itu tugas async yang mengembalikan janji karena ini akan membuka prompt dan sebelum pengguna 146 00:12:06,270 --> 00:12:08,810 memilih jawaban, tidak ada yang akan 147 00:12:08,820 --> 00:12:14,760 terjadi, jadi oleh karena itu kami memiliki janji yang menyelesaikan atau ditolak setelah pengguna mengonfirmasi atau menolak. 148 00:12:16,560 --> 00:12:20,090 Jadi di sini kita perlu lebih spesifik tentang izin yang kita 149 00:12:20,100 --> 00:12:26,940 butuhkan, jadi kita memberikan sesuatu untuk meminta async dan itu adalah konstanta yang kita dapatkan dari objek izin yang kita impor di 150 00:12:26,940 --> 00:12:27,270 sini. 151 00:12:27,660 --> 00:12:33,630 Jadi dengan notasi titik di sini, kita dapat mengakses berbagai jenis izin dan di sini semua nama yang 152 00:12:33,690 --> 00:12:36,660 ditulis dalam huruf kapital adalah berbagai izin yang 153 00:12:36,660 --> 00:12:41,660 dapat Anda minta dan di sini kami memerlukan izin kamera karena kami ingin mengakses kamera. 154 00:12:41,710 --> 00:12:46,340 Jika Anda ingin mengakses galeri, itu akan menjadi izin roll kamera. 155 00:12:47,850 --> 00:12:49,850 Sekarang saya akan pergi untuk kamera 156 00:12:50,700 --> 00:12:54,390 di sini dan seperti yang saya katakan, ini mengembalikan janji, saya 157 00:12:54,420 --> 00:13:00,410 ingin menggunakan async menunggu di sini maka saya dapat menambahkan async di sini di depan fungsi dan kemudian 158 00:13:00,440 --> 00:13:01,500 menunggu ini 159 00:13:01,500 --> 00:13:06,470 dan mendapatkan hasilnya dan menyimpannya dalam konstanta , alternatif untuk itu akan menggunakan kemudian dan 160 00:13:06,780 --> 00:13:14,010 menangkap ini dan di sana kita sekarang dapat memeriksa apakah hasilnya. statusnya tidak sama dengan yang diberikan yang berarti pengguna menolak, 161 00:13:14,010 --> 00:13:16,210 pengguna tidak memberikan izin, dalam 162 00:13:16,290 --> 00:13:18,770 hal ini kami tidak dapat melanjutkan. 163 00:13:18,780 --> 00:13:25,590 Jadi di sini saya benar-benar akan membuang peringatan, jadi impor 164 00:13:25,590 --> 00:13:40,420 peringatan dari Bereaksi Asli dan buang peringatan di mana saya mengatakan peringatan. peringatan, izin tidak mencukupi, Anda perlu memberikan izin aplikasi kamera untuk menggunakan aplikasi ini atau output apa pun yang ingin Anda 165 00:13:40,480 --> 00:13:42,890 tampilkan dan kemudian saya akan menambahkan 166 00:13:43,000 --> 00:13:49,690 satu tombol di sini di mana saya katakan OK. Sekarang pengguna perlu mengubah izin dalam pengaturan 167 00:13:49,690 --> 00:13:55,000 sistem setelah menolaknya, jadi kami tidak dapat meminta izin lagi di 168 00:13:55,000 --> 00:13:56,950 sini setelah ditolak. 169 00:13:56,950 --> 00:14:02,950 Jadi di sini, saya ingin mengembalikan false karena itu fungsi verifikasi izin dan saya ingin 170 00:14:02,950 --> 00:14:06,790 mengembalikan false jika jenis pengguna tidak memberi kami izin, 171 00:14:06,790 --> 00:14:10,080 saya mengembalikan true sebaliknya karena sekarang kami 172 00:14:10,090 --> 00:14:14,920 tahu kami memiliki izin. berfungsi beberapa kali dan pengguna sudah memberikan 173 00:14:14,920 --> 00:14:20,050 izin di masa lalu, pengguna tidak akan disajikan dengan prompt ini lagi, sama 174 00:14:20,050 --> 00:14:27,880 dengan cara jika pengguna menolak, dalam kedua kasus hasilnya disimpan secara otomatis oleh iOS dan fungsi ini hanya akan mengembalikan 175 00:14:27,880 --> 00:14:33,400 benar atau salah tergantung pada apakah pengguna menolak atau memberikan akses di masa lalu. 176 00:14:33,400 --> 00:14:37,350 Jadi verifikasi izin sekarang hanyalah fungsi yang perlu kita panggil 177 00:14:37,350 --> 00:14:40,590 di pengambil gambar sebelum kita mencoba menggunakan kamera. 178 00:14:40,780 --> 00:14:46,600 Jadi di sini, saya juga ingin menggunakan async menunggu karena memverifikasi izin tentu saja adalah 179 00:14:46,660 --> 00:14:47,600 fungsi yang 180 00:14:47,770 --> 00:14:55,080 mengembalikan janji, jadi saya akan menunggu ini dan menyimpan hasil yang akan saya simpan di konstanta bernama memiliki izin 181 00:14:56,100 --> 00:15:01,020 karena ini benar atau salah tergantung pada apakah pengguna memberikan izin atau tidak. 182 00:15:01,020 --> 00:15:05,580 Sekarang jika ini salah, jadi jika itu tidak benar, saya akan kembali ke sini, saya tidak 183 00:15:05,580 --> 00:15:11,100 akan melanjutkan, saya tidak akan membuka kamera karena saya tidak akan diizinkan untuk melakukan itu, jadi kami hanya tidak 184 00:15:11,100 --> 00:15:11,580 bisa 185 00:15:11,580 --> 00:15:12,360 lanjutkan, itu masalahnya. 186 00:15:13,500 --> 00:15:17,910 Kalau tidak, kita bisa melanjutkan dan sekarang kita juga bisa meluncurkan kamera di iOS. 187 00:15:17,940 --> 00:15:18,810 Jadi mari 188 00:15:18,810 --> 00:15:19,720 kita coba, mari 189 00:15:19,830 --> 00:15:25,750 kita simpan itu dan sekarang dengan itu berubah, saya benar-benar akan menghapus expo di sini untuk memastikan bahwa mengenai 190 00:15:25,750 --> 00:15:29,530 izin yang saya berikan di sana, itu kembali ke keadaan awal. 191 00:15:29,640 --> 00:15:33,860 Anda mungkin tidak perlu melakukan itu jika Anda tidak pernah memberikan izin apa 192 00:15:33,900 --> 00:15:39,810 pun di aplikasi pameran Anda, tetapi jika Anda bermain-main dengan izin dan paket asli sebelumnya, Anda harus menghapus dan 193 00:15:39,810 --> 00:15:44,870 menginstal kembali aplikasi pameran dengan lagi menjalankan aplikasi Anda di iOS dengan menekan i di konsol di 194 00:15:44,890 --> 00:15:47,910 sana untuk memastikan bahwa semua izin ini diatur ulang. 195 00:15:47,910 --> 00:15:53,220 Jadi sekarang jika kita pergi ke layar putar baru dan klik ambil gambar, saya ditanya apakah 196 00:15:53,490 --> 00:16:00,120 saya ingin memberikan akses ke kamera dan di sini saya bisa mengklik OK dan sekarang kita masih mendapatkan kesalahan itu. 197 00:16:01,490 --> 00:16:07,420 Sekarang satu-satunya alasan untuk itu adalah bahwa meskipun kami mencoba mengakses kamera di sini, ini sebenarnya dan itu 198 00:16:07,420 --> 00:16:12,450 hanya sesuatu yang saya tahu untuk paket ini memerlukan izin untuk roll kamera penuh. 199 00:16:12,450 --> 00:16:16,020 Jadi mari kita ubah ini untuk meminta izin untuk roll 200 00:16:22,830 --> 00:16:25,880 kamera di sini dan dengan itu, kembali dan klik 201 00:16:25,880 --> 00:16:32,550 ambil gambar, sekarang saya bertanya apakah saya ingin mengizinkan akses ke foto dan sekarang jika saya klik ya, saya mendapatkan 202 00:16:32,560 --> 00:16:37,710 kamera tidak tersedia di simulator yang sekarang merupakan kesalahan yang berbeda dan cukup jelas tentang 203 00:16:37,780 --> 00:16:43,510 apa masalahnya, simulator iOS tidak memiliki kamera. Jadi saya akan melanjutkan di Android mulai 204 00:16:43,510 --> 00:16:47,380 sekarang, tetapi tentu saja Anda dapat menguji ini pada iPhone 205 00:16:47,380 --> 00:16:54,250 nyata untuk melihat bahwa di sana, itu juga berfungsi. Jika Anda memindai barcode expo Anda dengan aplikasi expo dan menjalankan aplikasi 206 00:16:54,250 --> 00:16:56,000 di sana seperti yang Anda 207 00:16:56,050 --> 00:17:02,020 lihat di awal kursus, Anda dapat mengambil gambar dengan telepon nyata dan saya juga akan mendemonstrasikan aplikasi yang sudah selesai 208 00:17:02,200 --> 00:17:05,750 di akhir modul ini. pada perangkat iOS dan Android, pada perangkat nyata. 209 00:17:05,890 --> 00:17:10,600 Jadi untuk saat ini, saya akan fokus pada Android dan tentu saja, kami sudah bisa membuka ini. 210 00:17:10,690 --> 00:17:18,530 Saya ditanya lagi di sini tapi sekarang saya bisa membuka ini dan mengambil gambar. Itu tentu saja bagus tetapi mengambil gambar seperti ini bukan segalanya 211 00:17:18,530 --> 00:17:20,490 yang ingin saya lakukan, saya 212 00:17:20,570 --> 00:17:24,590 juga ingin dapat mengkonfigurasi bagaimana saya mengambilnya dan saya ingin dapat menggunakannya.